Может ли рыба script указать, в какой папке она хранится?

Итак, мне очень нравится Рыба, но мне нужна помощь в написании сценариев. и, в частности, поиск пути выполнения script.

Вот решение для BASH Получение исходного каталога Bash script изнутри

Может ли кто-нибудь помочь мне найти эквивалент с рыбой?

Ответ 1

status --current-filename выведет путь к выполняемому в данный момент script.

Для получения дополнительной информации о команде состояния вы можете запустить man status или просмотреть документацию в http://fishshell.com/docs/current/commands.html#status

Ответ 2

В раковине рыбы,

set DIR (cd (dirname (status -f)); and pwd) 

эквивалентно одному вкладышу BASH

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

упоминается в . Может ли скрипт Bash указать, в каком каталоге он хранится?.

ПРИМЕЧАНИЕ: раковина рыбы cd войдет в этот каталог и останется там. Bash будет cd, но он останется в подкоманде.

Ответ 3

Путь к файлу

Чтобы получить полный путь к script, используйте status --current-filename или set FILE (status --current-filename), чтобы объявить переменную.

Путь к каталогу

Чтобы получить полный путь к каталогу, в котором хранится script, используйте dirname (status --current-filename) или set DIR (dirname (status --current-filename)), чтобы объявить переменную.

Эквивалент этого вопроса:

set DIR (dirname (status --current-filename)) является эквивалентным