显然,如果脚本位于当前目录中,我无法对其进行source
。例如:
# source some/dir/script.sh
Ok
脚本正常工作,但如果我和脚本在同一目录下,则会出错:
# cd some/dir
# source script.sh
-sh: source: script.sh: file not found
怎么回事?难道唯一的方法就是改变目录吗?
如果相关的话,我使用的是Angstrom Linux上的bash v4.2.10。
引用源码手册:
source 文件名 [参数]
....
如果文件名不包含斜杠,则使用 PATH 中的文件名来查找包含文件名的目录。
因此,source
试图在 PATH
中包含的文件夹中搜索您的 script.sh
。
如果您想在当前文件夹中使用源文件,请使用
source ./script.sh
source /root/path/to/some/dir/script.sh
-- 应该可以解决问题。