如何检查执行了什么命令?

nul*_*ull 9 command-line paths execute-command

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

两条路径都属于PATH. 如何找出foo.sh在命令行上键入时执行的脚本中的哪一个?我可以影响它吗?

A.B*_*.B. 10

几天前,我对我的回答感到满意。我也知道which命令不是用来测试命令是否存在的。现在我对我的回答不太满意,我指的是这个很好的回应


用一个简单的which命令:

which foo.sh
Run Code Online (Sandbox Code Playgroud)

或者type命令:

type foo.sh
Run Code Online (Sandbox Code Playgroud)

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

/home/user/scripts/foo.sh
Run Code Online (Sandbox Code Playgroud)

例子

如果 PATH 定义如下

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Run Code Online (Sandbox Code Playgroud)

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