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

Вы можете использовать функции filter() и itemgetter() (это должно быть быстрее, чем listcomp):

from operator import itemgetter

d = [
    ['A', 'A1', {}],
    ['A', 'A2', {}],
    ['B', 'B1', {}],
]

itemget = itemgetter(0, 1)
result = filter(lambda x: itemget(x) == ('B', 'B1'), d)

for i in result:
    print(i)
# ['B', 'B1', {}]
56
задан Léo Léopold Hertz 준영 19 April 2009 в 01:07
поделиться

1 ответ

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

27
ответ дан 26 November 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: