bash 别名定义的语法

0 bash alias

我正在使用 Cygwin,并且已经安装了所有开发人员软件包以及大多数(如果不是全部)其他软件包。当我为 gcc 提供别名时,出现错误

-bash: alias: gcc: not found
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

我在终端中输入以下命令:

alias gcc "gcc -ansi -Wall -g -O0 -Wwrite-strings -Wshadow -pedantic-errors -fstack-protector-all"
Run Code Online (Sandbox Code Playgroud)

仅供参考,此别名适用于其他系统。

kba*_*kba 5

您的别名分配语法对于 bash/zsh/fish 是错误的(您的语法是 tcsh),您需要=在别名和别名之间进行扩展:

alias gcc="gcc -ansi -Wall -g -O0 -Wwrite-strings -Wshadow -pedantic-errors -fstack-protector-all"
Run Code Online (Sandbox Code Playgroud)

如果省略=, bash 会将gcc`"gcc -ansi ..." 解释为两个别名,并尝试列出它们的定义。由于未定义这些别名,您会收到警告:

bash: alias: gcc: not found
bash: alias: gcc -ansi -Wall -g -O0 -Wwrite-strings -Wshadow -pedantic-errors -fstack-protector-all: not found
Run Code Online (Sandbox Code Playgroud)