Bash 路径行为异常

5 bash which

我正在尝试从命令行运行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
Run Code Online (Sandbox Code Playgroud)

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

gee*_*aur 6

which谎言;它可以根据从您的 shell 启动文件中收集到的理想情况来报告事情,同时会遗漏一些可能性并且不会捕获标准文件未进行的任何更改。用type看什么壳的真正想法是怎么回事。

2@mress:1 B$ type which
which is /usr/bin/which
Run Code Online (Sandbox Code Playgroud)

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

2@mress:2 B$ type type
type is a shell builtin
Run Code Online (Sandbox Code Playgroud)