Эквивалент ${BASH_SOURCE[0]} в zsh?

Название должно сказать само за себя. Я ищу эквивалент на ${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

Ошибка источника ( $0is zsh) и echoвыводит пустую строку.

Редактировать:очевидно, для работы $0мне нужен параметр FUNCTION_ARGZERO. Есть ли способ проверить, установлено ли это в сценарии? (чтобы я мог временно установить его)Очевидно, он включен, если вы не установите nofunction_argzero, и он включен в моей оболочке. По-прежнему ничего не получите за $0. (Я думаю, потому что я не в функции.)

48
задан Thanatos 27 March 2012 в 17:46
поделиться