3

我一直想知道这一点,并没有设法在任何地方找到一个好的答案——如果两个命令行程序没有正确命名并共享相同的名称会发生​​什么?你会怎么称呼其中之一?比如说,有两个程序会响应brew install——默认情况下会调用哪个程序?你会如何指定另一个?

4

2 回答 2

5

排在第一位的$PATH是运行。如果要运行特定的二进制文件,请运行带有完整路径的命令。

例如,如果您有/usr/bin/brewand/usr/local/bin/brew和 set ,当您调用没有路径的命令时PATH=/bin:/usr/bin:/usr/local/bin,您将运行。如果您更改to/usr/bin/brew中的目录顺序,您将改为运行。将始终在其中运行命令(前提是它存在)。 $PATHPATH=/usr/local/bin:/bin:/usr/bin/usr/local/bin/brew/usr/local/bin/brew/usr/local/bin

于 2013-07-14T14:30:13.150 回答
4

当您在命令行上键入命令时,可以调用四件事。它们按以下顺序使用:

  1. 别名
  2. 功能
  3. 内置
  4. 文件

您可以使用type -a [program]查看哪些可用以及找到它们的顺序。当您有别名时,您可以跳过它并运行用\(ie \echo) 找到的下一个别名。您可以使用( )调用内置命令,使用builtin( builtin echo) 调用找到的第一个文件。您可以通过提供路径(至少有一个)来指定要执行的特定文件。当您不指定文件的路径时,您的 shell 将查看您的, 一个以冒号分隔的要查看的目录列表。它将在您指定的每个文件夹中检查具有您的命令名称的文件,并执行找到的第一个文件。commandcommand echo/PATHPATH

于 2013-07-14T14:54:36.170 回答