O shell padrão para rootno OS X é /bin/sh. Sua shtambém uma versão de bash, mas quando chamado com o nome shBash :
tenta imitar o comportamento de inicialização de versões históricas o shmais próximo possível, além de estar em conformidade com o padrão POSIX.
Quando invocado como um shell de login interativo ou como um shell não interativo com a --loginopção, ele primeiro tenta ler e executar comandos de /etc/profilee ~/.profilenessa ordem. ... um shell chamado sh não tenta ler e executar comandos de outros arquivos de inicialização
Ou seja, ele não lê .bash_profilenada, independentemente de ter sido chamado como um shell de login ou não . Você pode usar .profile, ou até mesmo vincular um ao outro. Se você iniciar um shell de login com su -l, .profileé carregado na inicialização, mas .bash_profilenunca será.
Você também pode usardscl para alterar o shell do root (observando que não/etc/passwd é usado para determinar o shell no OS X). Você pode verificar o shell atual do root com ; consulte a documentação e pense cuidadosamente antes de alterá-la para outra coisa.dscl . -read /Users/root UserShell
Outra abordagem é simplesmente alterar sua suchamada para forçar a execução bashimediata.
Dado o que você disse, eu provavelmente recomendaria o link simbólico, mas você pode examinar as alterações feitas pelo modo POSIX do Bash e decidir se deseja tê-las ou não.