Как экспортировать .bashrc в .zshrc?
Вопрос
Я пытаюсь перейти на zsh из Bash.
Я поместил свой .bashrc прямо в свой .zshrc, и это вызвало множество ошибок, когда я снова попытался использовать Bash.
Как экспортировать .bashrc в .zshrc?
Решение
Хотя ответ Луната подтолкнул меня в правильном направлении, zsh, похоже, не является источником .profile
автоматически.Много полезной информации по этой теме можно найти на этот пост суперпользователя.
Адаптация, которую я использую, заключается в добавлении общих псевдонимов и функций в .profile
и вручную найти их следующим образом:
.bashrc
source ~/.profile
.zshrc
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
Другие советы
Ты не можешь"экспорт" твой .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
вместо.В основном просто для себя (и, в конечном итоге, для людей, с которыми вы делитесь) ради переносимости.