2009-04-19 6 views

Répondre

47

Alors que la réponse de lhunath m'a poussé dans la bonne direction, zsh ne semble pas trouver .profile automatiquement. Beaucoup de bonnes informations sur ce sujet peut être trouvé sur this superuser post.

L'adaptation J'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'

+1

Oui, je pense que c'est la meilleure approche. Merci pour votre réponse! –

21

Vous ne pouvez pas "export" 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 attendre zsh pour être en mesure d'exécuter les commandes bash dans votre .bashrc, donc 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 de shell commun pour tous vos shells; utiliser .profile (et supprimer .bashrc et .zshrc). Il provient de tous les obus POSIX. Et là, coller à des fonctionnalités shell POSIX seulement. Ensuite, ce code sera exécuté 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'ai 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 mettez des commandes zsh là-dedans. As tu? Quelles erreurs obtenez-vous? Il me semble que vous avez ajouté le code zsh dans votre .bashrc et bash (évidemment) ne comprend pas. En outre, ojblass essaie de faire un point de portabilité qui ne réussit que partiellement. zsh est un super 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 à la place. Surtout juste pour votre propre (et, finalement, les gens que vous partagez avec leur) souci de la portabilité.

+0

Regardez l'article "J'ai mis mon .bashrc directement dans mon fichier .zshrc, et il a causé beaucoup d'erreurs quand j'ai essayé d'utiliser Bash à nouveau." Maintenant, réfléchis un instant à ce que cela causerait ... et reformule ton message. – ojblass

+0

@ojblass: Tout à fait raison; mal lu la question. – lhunath

Questions connexes