'其中' vs'命令-v'在巴什

时间:2016-05-05 17:00:34

标签: bash which

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

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

1 个答案:

答案 0 :(得分:19)

嗯...

command可能内置于您的shell中,使用-v选项将告诉您shell将如何调用指定为其选项的命令。

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

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

这两个命令做了不同的事情,您应该选择一个更符合您需求的命令。例如,如果command内置于您的shell中,command -v command将通过其输出(通过路径不存在)指示此内容,但which command将尝试指向文件在你的道路上,无论你的shell如何解释command