Wie können Sie Ihre Bashrc exportieren .zshrc?
Frage
Ich versuche, zsh von Bash zu bewegen.
Ich habe meine Bashrc direkt an meine .zshrc, und es eine Menge Fehler verursacht, wenn ich versuche, wieder Bash zu verwenden.
Wie können Sie Ihre Bashrc exportieren .zshrc?
Lösung
Während lhunath Antwort mich in der richtigen Richtung geschoben, zsh scheint nicht zu Quelle .profile
automatisch. Gibt es jede Menge guter Informationen zu diesem Thema finden Sie auf diesem Super-User Beitrag .
Die Anpassung ich benutze ist üblich, Aliase und Funktionen in .profile
setzen und Sourcing sie manuell wie folgt:
Bashrc
source ~/.profile
.zshrc
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
Andere Tipps
Sie können nicht " Export " Ihr .bashrc
zu einem .zshrc
. .bashrc
ist eine Datei, die bash
Befehle ausgeführt wird. .zshrc
ist eine Datei, die zsh
Befehle ausgeführt wird.
Sie können nicht erwarten zsh
die bash
Befehle in Ihrem .bashrc
ausführen zu können, so sollten Sie sie in eine neue .zshrc
umwandeln, anstatt zu laufen .bashrc
von .zshrc
oder Kopieren der ersteren in die letztere.
Wenn Sie eine gemeinsame Shell-Initialisierungsdatei wollen für alle Ihre Schalen; .profile
verwenden (und entfernen und .bashrc
.zshrc
). Es wird von allen POSIX Schalen bezogen. Und dort, halten Sie sich an POSIX-Shell-Features nur . Dann wird dieser Code in jedem POSIX-Shell ausgeführt werden. (Obwohl, ich bin nicht 100% sicher, dass zsh
ist POSIX-konform).
Siehe auch: http://mywiki.wooledge.org/DotFiles .
Obwohl - und ich würde erste Teil Ihrer Frage falsch verstanden - nicht Fehler aus bash
auftreten sollten, wenn Ihr .bashrc
laufen, es sei denn Sie zsh
Befehle in dort setzen. Hast du? Welche Fehler werden Sie bekommen? Klingt für mich wie Sie zsh
Code in Ihre .bashrc
und bash
(natürlich) nicht versteht hinzugefügt haben.
Als beiseite, versucht ojblass
einen Punkt der Portabilität zu machen, die nur teilweise gelingt. zsh
ist eine große Schale (obwohl ich habe nicht die Ehre selbst hat), aber beim Schreiben von Skripts; Ich würde empfehlen, Sie tun dies mit #!/usr/bin/env bash
statt. Meist nur für Ihre eigenen Zwecke der Portabilität (und schließlich, Sie die Menschen mit ihren teilen).