如何准确定位该可执行文件,如果它的名称在命令行中输入,它将运行?

Dim*_*ims 0 path executable locate

是否可以准确定位该可执行文件

myname
Run Code Online (Sandbox Code Playgroud)

如果传递给命令行,它将运行

> myname
Run Code Online (Sandbox Code Playgroud)

locate命令没有按预期工作,因为它返回了许多结果。结果应该正好是一个,因为如果你运行一些东西,只会运行一个文件。此外,结果应PATH优先考虑。

Tho*_*key 5

在 shell 中,您通常会使用whichtype为此,例如,

$ bash
$ which vile
/usr/bin/vile
$ type vile
vile is /usr/bin/vile
$ 
Run Code Online (Sandbox Code Playgroud)

type是首选,因为它适用POSIX shell,而它which是 C-shell 的保留。在实践中,我使用了一个显示替代方案的脚本: