Ho visto il seguente frammento in questo thread: Come passare da csh a bash come shell predefinita
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
La mia comprensione è che se si inserisce questo frammento ~/.login
verrà richiamato bash
quando si accede.
Ho una situazione simile in cui vorrei utilizzare uno snippet simile per invocare una versione zsh
diversa da quella predefinita con cui accedo. Parte del motivo per cui sto attraversando questo problema è perché non riesco a scegliere la mia versione desiderata di zsh
nelle opzioni consentite in chsh
e non ho i privilegi di amministratore.
Con questo:
- Come cambierei lo snippet qui sopra per fare questo quando cambio tra le diverse versioni di zsh?
- Perché sono
exec
necessari due comandi nel frammento sopra? Cosa fanno? Inoltre, perché utilizza lo snippet sopra (sh
ebash
l'utente dovrebbe accedere concsh
)
.zprofile
:if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fi
e sembra funzionare!