Vi el siguiente fragmento en este hilo: Cómo cambiar de csh a bash como shell predeterminado
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
Tengo entendido que si coloca este fragmento ~/.login, se invocará bashcuando inicie sesión.
Tengo una situación similar en la que me gustaría usar un fragmento similar para invocar una versión zshdiferente de la predeterminada con la que inicio sesión. Parte de la razón por la que estoy pasando por este problema es porque no puedo elegir mi versión deseada de zshen las opciones permitidas en chsh, y no tengo privilegios de administrador.
Con este:
- ¿Cómo cambiaría el fragmento anterior para hacer esto al cambiar entre diferentes versiones de zsh?
- ¿Por qué se
execnecesitan dos comandos en el fragmento de arriba? ¿Qué hacen? Además, ¿por qué usa el fragmento anteriorshybash(se supone que el usuario debe iniciar sesióncsh)

.zprofile: ¡if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fiy eso parece funcionar!