如果 PATH 环境变量中的两个不同目录都包含具有相同名称的二进制文件(但行为略有不同),是否有关于使用哪一个的规范/保证?
在我的机器(macOS Monterey,Darwin 21.2.0)上,我观察到(通过which <binary name>
)二进制文件是从 PATH 中找到的第一个目录中选择的(从左到右读取其内容)。但这是所有 Linux/UNIX 操作系统的标准行为吗?即是否有一些强制执行的标准(例如 POSIX)?
额外的上下文(对于好奇的人):我正在编写一个项目,该项目有一个脚本,该脚本在项目特定的文件夹中下载标准二进制文件的自定义版本,然后调用另一个必须使用自定义二进制文件而不是常规二进制文件的脚本。在调用第二个脚本之前,我将包含自定义二进制文件的文件夹添加到 PATH 中。鉴于我在发生冲突时如何搜索 PATH 的观察结果,我将 PATH 设置为而PATH=<my-custom-folder>:$PATH
不是PATH=$PATH:<my-custom-folder>
. 但这个项目有多个合作者,我想确保我们都运行相同的二进制文件。如果不同的操作系统以与我不同的方式搜索 PATH,事情就会崩溃。