J'ai vu l'extrait de code suivant dans ce fil: Comment passer de csh à bash comme shell par défaut
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
Ma compréhension est que si vous placez cet extrait, ~/.login
il sera invoqué bash
lors de votre connexion.
J'ai une situation similaire où j'aimerais utiliser un extrait similaire pour appeler une version zsh
différente de celle par défaut avec laquelle je me connecte. Une partie de la raison pour laquelle je rencontre ce problème est parce que je ne peux pas choisir ma version souhaitée zsh
dans les options autorisées dans chsh
, et je n'ai pas de privilèges d'administrateur.
Avec ça:
- Comment pourrais-je changer l'extrait ci-dessus pour le faire lors du basculement entre les différentes versions de zsh?
- Pourquoi deux
exec
commandes sont-elles nécessaires dans l'extrait ci-dessus? Que font-ils? Aussi, pourquoi l'extrait ci-dessus utilise-t-ilsh
etbash
(l'utilisateur est censé se connecter aveccsh
)
.zprofile
:if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fi
et cela semble fonctionner!