当我输入which npm时,我得到了/usr/local/bin/npm。当我输入command -v npm时,我得到了/usr/bin/npm。
为什么会这样呢?有什么不同呢?man which说which“返回将在当前环境中执行的文件名的路径名”。我看到,如果运行which -a npm,它将返回上述两条路径。
那么,为什么在没有-a的情况下运行时会选择第一个,而command -v npm则返回第二个呢?
发布于 2019-12-26 15:05:37
which是csh时代的一个外部命令,它与伯恩兼容的shell无关。
因此,除非使用csh,否则它可能返回错误的结果。
所以最好使用内置的shell命令..。
command是来自POSIX兼容Shell的内置命令,与其他内置Shell一起,type返回与Bourne类似的Shell的正确结果。
https://unix.stackexchange.com/questions/558959
复制相似问题