首页 > 解决方案 > 使用命令的绝对路径

问题描述

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

标签: shposix

解决方案


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

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

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


推荐阅读