foo.sh
我有一个名为的shell 脚本/usr/local/sbin
。此外,我还使用另一个同名脚本。它存储在 中/home/user/scripts
。
这两个路径都属于PATH
。我如何才能知道foo.sh
在命令行中输入时执行了哪一个脚本?我能影响它吗?
答案1
几天前我对我的答案很满意。我还知道该which
命令不是用来测试命令是否存在的。现在我对我的答案不太满意,我参考了这个反响热烈。
使用一个简单的which
命令:
which foo.sh
或者type
命令:
type foo.sh
$PATH
你可以在脚本启动时通过路径的顺序或绝对路径来影响这一点,例如
/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
具有更高的优先级。