Странное сообщение bash при загрузке исходного файла - PullRequest
0 голосов
/ 04 июня 2019
ql_get_latest(){
  . "$BASH_SOURCE";
}
export -f ql_get_latest;

когда я запускаю bash, я падаю в оболочку:

и затем, когда я бегу ql_get_latest, я получаю:

bash: environment: No such file or directory

Кто-нибудь знает, о чем это?

1 Ответ

1 голос
/ 04 июня 2019

BASH_SOURCE (или, в частности, элемент с индексом 0 этого массива) - это имя файла, в котором происходит определение функции. Поскольку ваша оболочка наследует ql_get_latest от своего родителя, имя «исходного файла» установлено на environment. Вы можете увидеть это (и другой частный случай), если просто отобразите значение переменной из функции.

$ foo () { echo "$BASH_SOURCE"; }
$ foo
main
$ export -f foo
$ bash
$ foo
environment

В вашем случае вы пытаетесь найти файл с именем environment, который не существует. (И если это так, это не обязательно будет связано с ql_get_latest.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...