Недавно я обнаружил, что некоторые скрипты, ссылающиеся на BASH_SOURCE, терпят неудачу, потому что они не определены в моей zshell. Примечание. Мой bash исходит из доморощенного, поэтому, возможно, bash bash изменяет значение по умолчанию BASH_SOURCE.Должно ли bash всегда предоставлять определение BASH_SOURCE, а если нет, то каково наилучшее обходное решение?
- Проблема: после запуска/bin/bash я обнаружил, что он также не определен в оболочке bash, которую я начал.
У меня есть два вопроса относительно этого вопроса:
Вопрос 1:
$BASH_SOURCE
всегда определяется как поддерживается в любой Баш оболочки? Если это так, я предполагаю, что запущен/bin/bash
и не видит BASH_SOURCE, подразумевает ошибку в bash?Вопрос 2: Является ли разумным по умолчанию я должен экспортировать по всему миру для BASH_SOURCE, который не сломает ничего?
Обратите внимание, что ['$ BASH_SOURCE'] (https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html) является массивом, поэтому, чтобы увидеть его содержимое, вы должны проверьте 'printf '% s \ n" "$ {BASH_SOURCE [@]}" '. – fedorqui
Почему вы запускаете скрипт 'bash' с' zsh'? – chepner