sh - 使用命令的绝对路径
问题描述
我正在编写一个使用环境变量的命令CC
。如果CC
设置,我的命令对 进行系统调用$CC
,否则cc
使用。调用时cc
,我应该使用/usr/bin/cc
还是简单地使用cc
?我什至可以依靠cc
存在/usr/bin
吗?由于用户可以设置CC
为任何字符串,我认为使用该路径不会cc
提供额外的安全性。
解决方案
cc
不是 POSIX 标准的一部分,所以你不能假设它有任何特定的位置。(实际上,任何命令都是如此;这就是PATH
它的用途。)您的脚本有一个记录要求,即它能够运行一些命令来编译代码。
- 默认情况下,该命令是
cc
. - 您可以修改
PATH
以影响cc
使用哪个。 - 您可以设置
CC
得更具体;它可以是另一个命令名、相对路径或绝对路径。
请注意CC
和PATH
不是相互排斥的。如果CC
设置为绝对路径,则将使用该路径。如果你只是使用类似 的东西CC=gcc
,那么 的值PATH
仍然可以确定使用了几个已安装版本中的哪一个gcc
。
推荐阅读
- java - Maven:未经请求的 jar 污染了我的 lib 文件夹
- java - Intellij 新项目 - JDK 不可用
- macos - 如果端口 443 关闭,Mac OS High Sierra 如何连接到 https
- javascript - NPM package.json 基础/根属性?
- python - Python:在b列中为a列中的每个值打印值
- angular - 在 Jasmine 中使用 spyon.and.callFake 修改私有数据成员
- python - OpenCV 从机器人相机中删除透视图
- javascript - Hapi.js 17.*:静态内容捕获所有目录处理程序
- javascript - 在 Reactjs 中绑定后函数仍然未定义
- php - 几秒钟后如何使用ajax自动将数据插入数据库