使用绝对路径命令
Using absolute path to command
我正在编写一个使用环境变量 CC
的命令。如果设置了 CC
,我的命令将对 $CC
进行系统调用,否则使用 cc
。调用 cc
时,我应该使用 /usr/bin/cc
还是简单地使用 cc
?我什至可以依赖 /usr/bin
中存在的 cc
吗?由于用户可以将 CC
设置为任何字符串,我认为使用 cc
的路径不会提供额外的安全性。
cc
不是 POSIX 标准的一部分,因此您不能为它假定任何特定位置。 (实际上,any 命令也是如此;这就是 PATH
的用途。)您的脚本有一个记录在案的要求,即它能够 运行一些编译代码的命令。
- 默认情况下,该命令是
cc
。
- 您可以修改
PATH
来影响使用哪个 cc
。
- 可以设置
CC
更具体;它可以是另一个命令名称、相对路径或绝对路径。
请注意 CC
和 PATH
并不互斥。如果 CC
设置为绝对路径,将使用该路径。如果你只是使用像CC=gcc
这样的东西,那么PATH
的值仍然可以确定使用gcc
的几个安装版本中的哪个。
我正在编写一个使用环境变量 CC
的命令。如果设置了 CC
,我的命令将对 $CC
进行系统调用,否则使用 cc
。调用 cc
时,我应该使用 /usr/bin/cc
还是简单地使用 cc
?我什至可以依赖 /usr/bin
中存在的 cc
吗?由于用户可以将 CC
设置为任何字符串,我认为使用 cc
的路径不会提供额外的安全性。
cc
不是 POSIX 标准的一部分,因此您不能为它假定任何特定位置。 (实际上,any 命令也是如此;这就是 PATH
的用途。)您的脚本有一个记录在案的要求,即它能够 运行一些编译代码的命令。
- 默认情况下,该命令是
cc
。 - 您可以修改
PATH
来影响使用哪个cc
。 - 可以设置
CC
更具体;它可以是另一个命令名称、相对路径或绝对路径。
请注意 CC
和 PATH
并不互斥。如果 CC
设置为绝对路径,将使用该路径。如果你只是使用像CC=gcc
这样的东西,那么PATH
的值仍然可以确定使用gcc
的几个安装版本中的哪个。