Не позволяй этому зш-ненавистнику унизить тебя. Zsh отличный!
Джереми Кантрелл
Ответы:
110
Хотя ответ lhunath подтолкнул меня в правильном направлении, zsh, похоже, не запускается .profileавтоматически. Много полезной информации по этой теме можно найти в этом сообщении суперпользователя .
Адаптация, которую я использую, заключается в добавлении общих псевдонимов и функций .profileи ручном их поиске следующим образом:
В ~/.bashrc:
source ~/.profile
В ~/.zshrc:
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
emulateэто встроенная команда zsh. С одним аргументом настройте параметры zsh, чтобы максимально имитировать указанную оболочку.
Да, я считаю, что это лучший подход. Спасибо за ваш ответ!
Лео Леопольд Герц 준영
приведенный выше ответ отлично работает и для меня. но я должен делать это каждый раз, когда открываю терминал zshrc. подскажите, как это исправить.
thedudecodes
33
Вы не можете « экспортировать » свой файл .bashrcв формат .zshrc. .bashrcэто файл, который запускает bashкоманды. .zshrcэто файл, который запускаетсяzsh команды.
Вы не можете ожидать, zshчто сможете запускать bashкоманды в вашем .bashrc, поэтому вам следует преобразовать его в новый .zshrcвместо того, чтобы пытаться запустить .bashrcиз.zshrc или копирования первого во второе.
Если вам нужен общий файл инициализации оболочки для всех ваших оболочек; использовать .profile(и удалить .bashrcи .zshrc). Его используют все оболочки POSIX. И здесь придерживайтесь только функций оболочки POSIX . Затем этот код будет работать в любой оболочке POSIX. (Хотя я не уверен на 100%, что zshон соответствует стандарту POSIX).
Хотя - и я сначала неправильно понял эту часть вашего вопроса - вы не должны испытывать ошибок bashпри запуске, .bashrcесли вы не zshвведете туда команды. А ты? Какие ошибки вы получаете? Мне кажется, вы добавили zshкод в свои .bashrcиbash (очевидно) не понимаете.
В стороне, ojblassпытается сделать акцент на переносимости, что удается лишь частично. zshотличная оболочка (правда, я не имел отличия), но при написании скриптов; Я бы рекомендовал вам сделать это с помощью #!/usr/bin/env bash. В основном только для вас (и, в конечном итоге, для людей, с которыми вы делитесь) ради переносимости.
Посмотрите на высказывание «Я поместил свой .bashrc прямо в свой .zshrc, и это вызвало много ошибок, когда я снова пытаюсь использовать Bash». теперь подумайте на мгновение, что могло бы вызвать это ... а затем перефразируйте свой пост.
Ответы:
Хотя ответ 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
. В основном только для вас (и, в конечном итоге, для людей, с которыми вы делитесь) ради переносимости.источник