El shell predeterminado para root
OS X es /bin/sh
. Su sh
es también una versión de bash
, pero cuando se invoca con el nombre sh
Bash :
intenta imitar el comportamiento de inicio de versiones históricas de la forma sh
más cercana posible, al tiempo que se ajusta al estándar POSIX también.
Cuando se invoca como un shell de inicio de sesión interactivo o como un shell no interactivo con la --login
opción, primero intenta leer y ejecutar comandos desde /etc/profile
y ~/.profile
, en ese orden. ... un shell invocado como sh no intenta leer y ejecutar comandos desde ningún otro archivo de inicio
Es decir, no se lee .bash_profile
en absoluto, independientemente de si se invocó como un shell de inicio de sesión o no . En su .profile
lugar, puede usar , o incluso vincular uno a otro. Si inicia un shell de inicio de sesión con su -l
, .profile
se carga al inicio, pero .bash_profile
nunca lo será.
También se puede utilizardscl
para cambiar la cáscara de la raíz (señalando que /etc/passwd
se no se utiliza para determinar la cáscara en OS X). Puede verificar el shell actual de root con dscl . -read /Users/root UserShell
; consulte la documentación y piense detenidamente antes de cambiarla por otra cosa.
Otro enfoque es simplemente cambiar su su
invocación para forzar la ejecución bash
inmediata.
Dado lo que ha dicho, probablemente recomendaría el enlace simbólico, pero es posible que desee ver los cambios que realiza el modo POSIX de Bash y decidir si desea tenerlos o no.