Подтвердить что ты не робот

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

Я пытаюсь перейти к zsh из Bash.

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

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

4b9b3361

Ответ 1

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

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

.bashrc

source ~/.profile

.zshrc

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

Ответ 2

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