如何检查采取了什么命令?


9

我有一个名为shell脚本foo.sh/usr/local/sbin。此外,我使用另一个具有相同名称的脚本。它存储在中/home/user/scripts

这两个路径都属于PATHfoo.sh在命令行上键入时,我如何找出执行了哪些脚本?我可以影响吗?

Answers:


10

几天前,我对自己的回答感到满意。我也知道该which命令不用于测试命令是否存在。现在,我对自己的回答不太满意,因此我提到了这个很好的回答


用一个简单的which命令:

which foo.sh

type命令:

type foo.sh

您可以$PATH通过脚本中的路径顺序或脚本启动时的绝对路径(例如EG)来影响这一点

/home/user/scripts/foo.sh

如果PATH定义如下

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

然后,您以较高的优先级启动一个脚本或该脚本中/usr/local/bin和中的其他内容。/usr/bin/usr/local/bin


1
说起bashzsh另外还有type内置的; 而不是zsh which,从不同的bash是内置的(不/usr/bin/which
科斯


@muru谢谢。我已经知道了一点,但没有那么详细。我已经将我的观点添加到了答案中。再次感谢。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.