我正在编写一个使用环境变量CC
的命令。如果设置了CC
,我的命令会调用$CC
,否则会使用cc
。在调用cc
时,我应该使用/usr/bin/cc
还是仅使用cc
?我还能依靠cc
中存在的/usr/bin
吗?由于用户可以将CC
设置为任何字符串,因此我认为使用cc
的路径不会提供额外的安全性。
答案 0 :(得分:1)
cc
不是POSIX标准的一部分,因此您无法为其假定任何特定位置。 (实际上,对于任何命令也是如此;这就是PATH
的用途。)您的脚本有一个记录的要求,即它能够运行一些命令来编译代码
cc
。PATH
以影响使用cc
。CC
设置为更具体;它可以是另一个命令名,相对路径或绝对路径。请注意,CC
和PATH
不是互斥的。如果将CC
设置为绝对路径,则将使用该路径。如果您只使用CC=gcc
之类的内容,那么PATH
的值仍然可以确定使用了几个已安装的gcc
版本中的哪一个。