使用绝对路径命令

Using absolute path to command

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

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

  1. 默认情况下,该命令是 cc
  2. 您可以修改 PATH 来影响使用哪个 cc
  3. 可以设置CC更具体;它可以是另一个命令名称、相对路径或绝对路径。

请注意 CCPATH 并不互斥。如果 CC 设置为绝对路径,将使用该路径。如果你只是使用像CC=gcc这样的东西,那么PATH的值仍然可以确定使用gcc的几个安装版本中的哪个。