![在 PATH 中找不到作为参数传递给另一个命令的命令](https://linux22.com/image/87283/%E5%9C%A8%20PATH%20%E4%B8%AD%E6%89%BE%E4%B8%8D%E5%88%B0%E4%BD%9C%E4%B8%BA%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%E7%BB%99%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E5%91%BD%E4%BB%A4.png)
通常,当一个命令作为另一个命令的参数出现时,例如
command1 command2
如何command2
搜索 的可执行文件?
是在 中搜索到的吗$PATH
?
它特定于如何command1
处理搜索吗?
例如,我只是更改PATH
了~/.bashrc
,然后运行source ~/.bashrc
。然后我可以myprogram
在bash中运行,但是运行时出现问题
$ torify myprogram
ERROR: myprogram cannot be found in PATH.
答案1
由于第二个命令是第一个命令的参数(就 shell 而言,这是实际运行的可执行文件),因此它完全取决于第一个命令如何处理其参数。
实际的可执行文件是否采用完整路径或相对路径或搜索PATH
,完全取决于它的设计。
答案2
torify
用于/bin/which
测试是否myprogram
在 PATH 中找到。首先尝试使用which myprogram
自己。确保您的命令可以通过chmod +x myprogram
.