Я пытаюсь перейти на 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
. В основном только для вас (и, в конечном итоге, для людей, с которыми вы делитесь) ради переносимости.