Как получить родительскую папку исполняемого скрипта в zsh?

В bash я получаю имя родительской папки исполняемого скрипта по этой строке

SCRIPT_PARENT=`readlink -f ${BASH_SOURCE%/*}/..`

Есть ли способ добиться этого в zsh таким образом, чтобы он работал как в zsh, так и в bash?

Предположим, у меня есть файл /some/folder/rootfolder/subfolder/scriptс содержимым:

echo `magic-i-am-looking-for`

Я хочу, чтобы он вел себя так:

$ cd /some/other/folder
$. /some/folder/rootfolder/subfolder/script
/some/folder/rootfolder
$.../../folder/rootfolder/subfolder/script
/some/folder/rootfolder
$ cd /some/folder/rootfolder
$. subfolder/script
/some/folder/rootfolder
$ cd subfolder
$. script
/some/folder/rootfolder

Это должно работать в bash и zsh. Мой первый реализует это поведение, но из-за $BASH_SOURCEне работает в zsh.

Так что в основном это:

Есть ли способ эмулировать $BASH_SOURCEв zsh, который также работает в bash?

6
задан don_jones 27 July 2012 в 12:27
поделиться