给定一个$ PATH,如:
/Users/myname/bin:
/usr/local/Cellar:
/usr/local/Cellar/ruby/1.9.3-p362/bin:
... and so forth
我真的需要红宝石位置,或者是/ usr /本地/酒窖足以找到红宝石?
给定一个$ PATH,如:
/Users/myname/bin:
/usr/local/Cellar:
/usr/local/Cellar/ruby/1.9.3-p362/bin:
... and so forth
我真的需要红宝石位置,或者是/ usr /本地/酒窖足以找到红宝石?
这些条目是相互独立的,只计算直接内容。尝试一下。
> mkdir ~/bin
> mkdir ~/bin/test
> cp /bin/echo ~/bin/test/echotest
> export PATH=$PATH:~/bin
> echotest Hello, world
-bash: echotest: command not found
> rm -rf ~/bin/test
,当键入一个普通的命令的名称和它不是一个功能或别名,则壳逻辑取的名称和尝试每个目录在PATH反过来。在伪代码:
name=command_to_execute
for path in ${names in PATH}
exec $path/$name "${arguments[@]}"
report "failed to find command $name"
如果exec
成功,没有什么更多的事情要做。如果exec
失败,它会尝试下一个目录。
请注意,路径搜索从不适用于包含斜杠的名称。并且shell仅精确地搜索PATH中列出的目录(但空条目被解释为对当前目录.
的引用)。它不会以自己的意志看待子目录;你将不得不在PATH中列出子目录。
是的,你的shell不会在这些文件夹中递归搜索二进制文件 – Blender