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?

War es hilfreich?

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.

zu versuchen,

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top