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