无法识别命令行选项的别名

无法识别命令行选项的别名

我有几个标志想添加到我的 gcc 编译中,所以我alias将它们编辑为

alias gcc_flags='-std=c99 -Wall -pedantic -Wextra -Wconversion'

并尝试像这样进行编译:

$ gcc gcc_flags file_name.c -o object_name -L/usr/lib/i386-linux-gnu -lcurl
gcc: error: gcc_flags: No such file or directory

编译时不使用别名,即

gcc -std=c99 -Wall -Wextra -Wconversion -pedantic file_name.c -o object_name -L/usr/lib/i386-linux-gnu -lcurl

编译工作正常。这是为什么呢?


  • gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
  • alias gcc_flags='-std=c99 -Wall -pedantic -Wextra -Wconversion'出现在我的别名列表中
  • Ubuntu 版本 -Release: 14.04

顺便问一下,现在是不是该默认使用gcc进行编译了?-std=c99

答案1

别名允许在使用时用字符串代替单词 作为第一个词一个简单的命令。(man bash,重点是我的)

要使用自定义标志创建别名gcc,请执行以下操作:

alias gcc_flags='gcc -std=c99 -Wall -pedantic -Wextra -Wconversion'

并运行以下命令:

gcc_flags file_name.c -o object_name -L/usr/lib/i386-linux-gnu -lcurl

如果您每次都添加选项并且觉得应该是默认选项,那么您也可以为其添加别名gcc,例如:

alias gcc='gcc -std=c99'

这种方式gcc将始终使用该标志启动。如果您随后想忽略alias并使用它没有您可以按照该标志运行它,\gcc或者以中列出的多种不同方式运行它我如何运行具有相同名称的原始命令?

相关内容