当您使用 bash 执行命令时,该命令可能引用各种二进制文件或内置 bash 函数。这些二进制文件保存在“/usr/bin”、“/bin”和当前目录中。我的问题是,当我调用一个可能引用位于这些位置中的多个位置的二进制文件的命令时会发生什么。如果调用的命令可能引用“/bin”中的二进制文件或当前目录中的二进制文件,会发生什么?或者,当“/bin”或“/usr/bin”中存在同名的内置命令和二进制文件时会发生什么。bash 如何确定要执行哪个二进制文件/内置文件?
答案1
基本顺序是
- 别名
- shell 函数
- shell 内置命令
PATH
搜索变量的目录为了(此步骤的结果可能会缓存在哈希表中 - 参见help hash
)
cmd
因此例如如果当前目录中和中都有一个/bin
,那么将执行的那个将取决于/bin
和.
在你的中的相对位置PATH
。(注意:出于安全原因,通常不建议.
在路径中添加。)
COMMAND EXECUTION
有关完整详细信息,请参阅man bash