'哪个'vs'命令-v'在Bash中[重复]

问题描述 投票:9回答:1

这个问题在这里已有答案:

我刚才读过一些bash常见问题解答(我不记得了),应该避免使用which并且首选command -v

为什么会这样?任何一个的优点和缺点是什么?

bash which
1个回答
22
投票

好...

command可能内置在你的shell中,使用-v选项会告诉你shell如何调用指定的命令作为它的选项。

which是一个外部二进制文件,位于/usr/bin/which,它遍历$PATH环境变量并检查文件是否存在。

选择前者而不是后者的一个原因是它避免了对shell之外的东西的依赖。

这两个命令做了不同的事情,你应该选择一个更符合你需求的命令。例如,如果command内置在你的shell中,command -v command会用它的输出(通过路径不存在)表明这一点,但是which command将尝试指向你路径上的文件,无论command如何被解释为你的壳。

© www.soinside.com 2019 - 2024. All rights reserved.