源文件时出现奇怪的 bash 消息
Strange bash message when source-ing file
ql_get_latest(){
. "$BASH_SOURCE";
}
export -f ql_get_latest;
当我运行bash
时,我掉进了一个shell:
然后当我 运行 ql_get_latest
我得到:
bash: environment: No such file or directory
有人知道那是什么吗?
BASH_SOURCE
(或者具体来说,该数组索引 0 处的元素)是函数定义所在的文件的名称。由于您的 shell 从其父级继承 ql_get_latest
,因此 "source file" 的名称设置为 environment
。如果你简单地从函数中回显变量的值,你可以看到这个(和另一个特殊情况)。
$ foo () { echo "$BASH_SOURCE"; }
$ foo
main
$ export -f foo
$ bash
$ foo
environment
在您的情况下,您正在尝试获取名为 environment
的文件,该文件不存在。 (即使有,也不一定与 ql_get_latest
有任何关系。)
ql_get_latest(){
. "$BASH_SOURCE";
}
export -f ql_get_latest;
当我运行bash
时,我掉进了一个shell:
然后当我 运行 ql_get_latest
我得到:
bash: environment: No such file or directory
有人知道那是什么吗?
BASH_SOURCE
(或者具体来说,该数组索引 0 处的元素)是函数定义所在的文件的名称。由于您的 shell 从其父级继承 ql_get_latest
,因此 "source file" 的名称设置为 environment
。如果你简单地从函数中回显变量的值,你可以看到这个(和另一个特殊情况)。
$ foo () { echo "$BASH_SOURCE"; }
$ foo
main
$ export -f foo
$ bash
$ foo
environment
在您的情况下,您正在尝试获取名为 environment
的文件,该文件不存在。 (即使有,也不一定与 ql_get_latest
有任何关系。)