command
中的命令:bash
使用参数运行命令,忽略任何名为 command 的 shell 函数。
该-p
选项意味着使用默认值$PATH
保证找到所有标准实用程序。
这里提到的默认值到底是什么PATH
?当我定义 时export PATH="/home/ozgur/":$PATH
,我不会PATH
在默认值上添加新路径吗?
例如:
$ export PATH="/home/ozgur/":$PATH
$ echo $PATH
/home/ozgur/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ script.sh
hey, i am working !
$ command -p script.sh
hey, i am working !
当我在命令中使用该-p
选项时command
,我希望它忽略PATH
我定义的新路径,但这并没有发生。我在这里到底缺少什么?-p
如果对用户PATH
路径的更改未被覆盖,那么使用该选项有何意义?
答案1
我在这里到底缺少什么?
该script.sh
命令经过哈希处理。如果你运行hash -r
,那么command -p script.sh
将会按预期失败。但如果你直接运行它,它会再次被哈希。
这看起来确实像是 bash 中的一个错误——在其他 shell 中不会发生。