Название должно сказать все это.Я ищу эквивалент ${BASH_SOURCE[0]}
в zsh.
Примечание: Я продолжаю находить "$0
эквивалентно ${BASH_SOURCE[0]}
" в Интернете, но, похоже, этобыть ложным: $0
кажется именем исполняемой команды.(Это argv[0]
, что имеет смысл.) Повторение $ 0 в моем скрипте (.zshrc
) дает zsh
для $0
, что не то же самое, что ${BASH_SOURCE[0]}
.Фактически, ${BASH_SOURCE[0]}
, кажется, работает в zsh
, за исключением внутренних файлов .zshrc
.
Что я действительно делаю в своих .zshrc
(это не работает):
echo ${BASH_SOURCE[0]}
source `dirname $0`/common-shell-rc.sh
Сбой источника ($0
равен zsh
) и echo
выводит пустую строку.
Редактировать: по-видимому, для $0
для работы мне нужно установить опцию FUNCTION_ARGZERO
.Любой способ проверить, установлено ли это в сценарии?(чтобы я мог его временно установить) По-видимому, он включен, если вы не установили nofunction_argzero
, и он включен в моей оболочке.Все равно ничего не получите за $0
.(Я думаю, что б / с я не в функции.)