Bash 路径行为异常

Bash 路径行为异常

我尝试openscad从命令行运行,但它抛出一个错误,但如果我输入报告的整个路径,它似乎可以正常工作,如下所示。

[dataproc@Euclid ~]$ which openscad
/usr/bin/openscad
[dataproc@Euclid ~]$ openscad
bash: /usr/local/bin/openscad: No such file or directory
[dataproc@Euclid ~]$ /usr/bin/openscad
[dataproc@Euclid ~]$ #this worked

我完全不知道这里发生了什么,任何帮助都将不胜感激。

答案1

which谎言;它可以根据从 shell 启动文件中收集到的理想情况来报告事情,同时会遗漏一些可能性,并且不会捕获任何非标准文件所做的更改。使用它type来查看 shell 真正认为正在发生的事情。

2@mress:1 B$ type which
which is /usr/bin/which

外部命令根本无法告诉真正会发生什么,因为它们必须根据您的启动文件猜测函数和别名,并且不知道autoload机制创建的东西;您需要询问 shell 本身它将做什么。

2@mress:2 B$ type type
type is a shell builtin

答案2

如果不知道你的 .profile (.bashrc 等),只能猜测,那么你就有地方

alias openscad=/usr/local/bin/openscad

这就是为什么你的 bash 尝试运行 /usr/local/bin/openscad 而不是 /usr/bin 中的默认运行的原因。

相关内容