Cuando ~/.profile
inicia sesión, el archivo es leído por el shell de inicio de sesión (ksh para usted). Puede indicarle a ese shell de inicio de sesión que se reemplace por bash. Debes tomar algunas precauciones:
- Solo reemplace el shell de inicio de sesión si es interactivo. Esto es importante: de lo contrario, el inicio de sesión en modo gráfico puede no funcionar (esto depende del sistema: algunos pero no todos los sistemas leen
~/.profile
al iniciar sesión a través de xdm o similar), y las expresiones idiomáticas tales como ssh foo '. ~/.profile; mycommand'
fallarán.
- Verifique que bash esté disponible, de modo que aún pueda iniciar sesión si el ejecutable no está allí por alguna razón.
Tiene la opción de ejecutar bash como shell de inicio de sesión o no. La única diferencia importante para convertirlo en un shell de inicio de sesión es que se cargará ~/.bash_profile
o ~/.profile
. Entonces, si ejecuta bash como shell de inicio de sesión, tenga mucho cuidado de tener ~/.bash_profile
o tener cuidado de no ejecutar bash recursivamente desde ~/.profile
. No hay una ventaja real de haber ~/.profile
ejecutado por bash en lugar de ksh, por lo que recomiendo no hacerlo.
Establezca también la SHELL
variable de entorno en bash, para que los programas como los emuladores de terminal invoquen ese shell.
Aquí hay un código para cambiar a bash. Ponlo al final de ~/.profile
.
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac