我们在当前目录中有几个指向脚本目录的软链接。假设我们有两个软链接,script1 和 script2。我们在 script1 中引用 script2,如下所示。
. script2
在我们更改基础架构之前,它一直运行良好。现在,如果我们触发软链接脚本 1,它无法在其中找到软链接脚本 2 并抛出错误。但是,如果我们像下面这样更改脚本 1 中的软链接引用,它就会正常工作。
. ./script2
有任何明显的原因吗?
答案1
正如bash
手册页所解释的那样,source
(这.
是的简写),$PATH
如果文件不包含/
,则搜索文件,因此
. script1
是错误的,您的问题与符号链接无关,但它更多的是版本问题bash
(此行为在某个时间点发生了变化,如果我没记错的话)。至少zsh
和dash
(这是一个相当兼容的 POSIX-shell)也是这样做的。