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