J'essaie de passer à zsh depuis Bash.
J'ai mis mon .bashrc directement dans mon .zshrc, et cela a causé beaucoup d'erreurs lorsque j'essaie de réutiliser Bash.
Comment pouvez-vous exporter votre .bashrc vers .zshrc?
Alors que la réponse de lhunath m'a poussé dans la bonne direction, zsh ne semble pas source .profile
automatiquement. Beaucoup de bonnes informations sur ce sujet peuvent être trouvées sur ce post superutilisateur .
L'adaptation que j'utilise consiste à mettre des alias et des fonctions communs dans .profile
et en les approvisionnant manuellement comme suit:
. bashrc
source ~/.profile
. zshrc
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
Vous ne pouvez pas " exporter" votre .bashrc
à un .zshrc
. .bashrc
est un fichier qui exécute les commandes bash
. .zshrc
est un fichier qui exécute les commandes zsh
.
Vous ne pouvez pas vous attendre à ce que zsh
puisse exécuter les commandes bash
dans votre .bashrc
, vous devez donc le convertir en un nouveau .zshrc
au lieu d'essayer d'exécuter .bashrc
de .zshrc
ou en copiant le premier dans le second.
Si vous voulez un fichier d'initialisation Shell commun pour tous vos shells; utilisation .profile
(et supprimez .bashrc
et .zshrc
). Il provient de tous les shells POSIX. Et là, respectez uniquement les fonctionnalités du shell POSIX . Ensuite, ce code s'exécutera dans n'importe quel shell POSIX. (Cependant, je ne suis pas sûr à 100% que zsh
est compatible POSIX).
Voir: http://mywiki.wooledge.org/DotFiles .
Bien que - et j'aurais d'abord mal lu cette partie de votre question - vous ne devriez pas rencontrer d'erreurs de bash
lors de l'exécution de votre .bashrc
sauf si vous y mettez des commandes zsh
. As tu? Quelles erreurs obtenez-vous? Cela me semble avoir ajouté du code zsh
dans votre .bashrc
et bash
(évidemment) ne comprend pas.
En passant, ojblass
essaie de faire un point de portabilité qui ne réussit que partiellement. zsh
est un excellent Shell (même si je n'ai pas eu les honneurs moi-même), mais lors de l'écriture de scripts; Je vous recommande de le faire avec #!/usr/bin/env bash
au lieu. Surtout juste pour votre propre (et éventuellement, les personnes que vous partagez avec eux) pour des raisons de portabilité.