Как вы можете экспортировать ваш .bashrc в .zshrc? - PullRequest
49 голосов
/ 19 апреля 2009

Я пытаюсь перейти на Zsh из Bash.

Я поместил свой .bashrc прямо в мой .zshrc, и это вызвало много ошибок при попытке использовать Bash снова.

Как вы можете экспортировать ваш .bashrc в .zshrc?

Ответы [ 2 ]

71 голосов
/ 24 сентября 2014

Хотя ответ lhunath подтолкнул меня в правильном направлении, zsh, похоже, не получает .profile автоматически. Много полезной информации по этой теме можно найти в этом сообщении суперпользователя .

Используемая мною адаптация помещает общие псевдонимы и функции в .profile и использует их вручную следующим образом:

.bashrc

source ~/.profile

.zshrc

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

24 голосов
/ 19 апреля 2009

Вы не можете " экспортировать " свои .bashrc в .zshrc. .bashrc - это файл, который запускает bash команды. .zshrc - это файл, который запускает zsh команды.

Вы не можете ожидать, что zsh сможет запускать команды bash в вашем .bashrc, поэтому вы должны преобразовать его в новый .zshrc вместо попытки запустить .bashrc из .zshrc или копирование первого в последнее.

Если вам нужен общий файл инициализации оболочки для всех ваших оболочек; используйте .profile (и удалите .bashrc и .zshrc). Он поставляется всеми оболочками POSIX. И там придерживайтесь особенностей оболочки POSIX только . Затем этот код будет работать в любой оболочке POSIX. (Хотя я не уверен на 100%, что zsh соответствует POSIX).

См .: http://mywiki.wooledge.org/DotFiles.

Хотя - и я бы сначала неправильно прочитал эту часть вашего вопроса - вы не должны испытывать ошибки с bash при запуске .bashrc, если вы не введете туда команды zsh. А вы? Какие ошибки вы получаете? Похоже, вы добавили zsh код в .bashrc, а bash (очевидно) не понимает.

Кроме того, ojblass пытается выделить точку переносимости, которая лишь частично успешна. zsh - отличная оболочка (хотя я сам не имел наград), но при написании сценариев; Я бы порекомендовал вам сделать это с #!/usr/bin/env bash. В основном только для себя (и, в конечном итоге, для людей, с которыми вы делитесь) ради мобильности.

...