Comment pouvez-vous exporter votre .bashrc à .zshrc?
Question
Je suis en train de passer à zsh Bash.
Je mets mon .bashrc directement à mon .zshrc, et il a causé beaucoup d'erreurs lorsque je tente d'utiliser Bash à nouveau.
Comment exporter votre .bashrc à .zshrc?
La solution
Alors que la réponse de lhunath m'a poussé dans la bonne direction, zsh ne semble pas .profile
source automatiquement. Lot de bonnes informations sur ce sujet se trouve sur ce poste de super-utilisateur .
L'adaptation que je utilise est les alias et les fonctions communes dans .profile
et les approvisionner manuellement comme suit:
.bashrc
source ~/.profile
.zshrc
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
Autres conseils
Vous ne pouvez pas " export " votre .bashrc
à un .zshrc
. .bashrc
est un fichier qui exécute des commandes de bash
. .zshrc
est un fichier qui exécute des commandes de zsh
.
Vous ne pouvez pas attendre zsh
pour pouvoir exécuter les commandes de bash
dans votre .bashrc
, vous devez le convertir en une nouvelle .zshrc
au lieu d'essayer d'exécuter .bashrc
de .zshrc
ou la copie du premier dans le second.
Si vous voulez un fichier d'initialisation du shell commun pour toutes vos coquilles; utiliser .profile
(et supprimer .bashrc
et .zshrc
). Il est sourcé par tous les shells POSIX. Et là, le bâton aux fonctions shell POSIX uniquement . Ensuite, ce code sera exécuté dans une shell POSIX. (Bien que, je ne suis pas certain à 100% que zsh
est conforme POSIX).
Voir: http://mywiki.wooledge.org/DotFiles .
Bien - et je voudrais tout d'abord mal lu cette partie de votre question - vous ne devriez pas rencontrer des erreurs de bash
lors de l'exécution de votre .bashrc
sauf si vous mettez les commandes zsh
là-dedans. As tu? Quelles erreurs obtenez-vous? Me semble que vous avez ajouté le code zsh
dans votre .bashrc
et bash
(évidemment) ne comprend pas.
En aparté, ojblass
essaie de faire un point de portabilité qui ne parvient en partie. zsh
est une grande coquille (bien que je ne l'ai pas eu les honneurs moi-même), mais lors de l'écriture des scripts; Je vous recommande de le faire avec #!/usr/bin/env bash
à la place. La plupart du temps juste pour votre propre (et éventuellement, les gens que vous partagez avec leur) cause de la portabilité.