使用绝对路径命令

时间:2018-05-30 11:44:14

标签: sh posix

我正在编写一个使用环境变量CC的命令。如果设置了CC,我的命令会调用$CC,否则会使用cc。在调用cc时,我应该使用/usr/bin/cc还是仅使用cc?我还能依靠cc中存在的/usr/bin吗?由于用户可以将CC设置为任何字符串,因此我认为使用cc的路径不会提供额外的安全性。

1 个答案:

答案 0 :(得分:1)

cc不是POSIX标准的一部分,因此您无法为其假定任何特定位置。 (实际上,对于任何命令也是如此;这就是PATH的用途。)您的脚本有一个记录的要求,即它能够运行一些命令来编译代码

  1. 默认情况下,该命令为cc
  2. 您可以修改PATH以影响使用cc
  3. 您可以将CC设置为更具体;它可以是另一个命令名,相对路径或绝对路径。
  4. 请注意,CCPATH不是互斥的。如果将CC设置为绝对路径,则将使用该路径。如果您只使用CC=gcc之类的内容,那么PATH的值仍然可以确定使用了几个已安装的gcc版本中的哪一个。