Рекомендуемый метод для перезагрузки `.zshrc`?(`source` VS` exec`?) - PullRequest
0 голосов
/ 24 мая 2019

Большинство людей рекомендуют использовать source для перезагрузки .zshrc.Почему?

Сначала я попробовал source ~/.zshrc.Но это привело к ошибке compinit (при перезагрузке, а не для новых экземпляров оболочки при первой .zshrc загрузке).

Мой псевдоним перезагрузки теперь:

alias zsh-reload="exec zsh"

вместо:

source ~/.zshrc

Причина этого в том, что мой предыдущий метод перезагрузки (source) вызвал ошибку compinit;

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

Так что я сейчас делаю exec, потому что я верюэто гарантирует, что предыдущая среда не загрязняет новую.

  • Каковы недостатки использования метода exec?
  • Есть ли явная причина того, что вывыполнение exec или source?
  • Может ли exec теоретически вызвать неожиданные проблемы по сравнению с методом source?

1 Ответ

0 голосов
/ 25 мая 2019

При exec все (неэкспортированные) переменные в вашей оболочке теряются, что, вероятно, не то, что вам нужно.Вместо этого, возможно, было бы лучше исправить проблему compinit, используя compinit -i.См. Справочную страницу zsh для compinit , параграф Использование compinit :

, чтобы compinit беззвучно игнорировал все небезопасные файлы и каталоги, используя опцию -i

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...