Почему в скрипте не работает автозагрузка zsh?

2

Я пытаюсь справиться с функциями автозагрузки в Zsh. Я добавил папку, в которой я храню свои функции (~ / .zfuncs) в свой fpath, и добавил тестовую функцию

# ~/.zfuncs/myfunction
echo "Hello world!"

Это прекрасно работает, когда я автоматически загружаю его в моей консоли:

stephanie% autoload -Uz myfunction
stephanie% myfunction
Hello world!

Когда я пытаюсь запустить его в сценарии, это не работает:

#!/usr/bin/env zsh
# ~/scripts/test-myfunction.sh

autoload -Uz myfunction
myfunction

Запуск скрипта выдает ошибку:

stephanie% zsh ~/scripts/test-myfunction.sh
myfunction:5: myfunction: function definition file not found

Это работает, если я добавлю следующую строку в начало скрипта:

source ~/.zshrc

Что я пропускаю или делаю неправильно?

stephanie.anderson
источник

Ответы:

1

Я понял это, с информацией от этот ответ. Мне нужно было добавить строку моей папки в fpath в моем файле .zshenv, а не в файле .zshrc, потому что когда это скрипт, это не интерактивная оболочка.

stephanie.anderson
источник