~/.bashrc
sources /etc/bashrc
, que então origina /etc/profile.d/*
(mas não /etc/profile
?). Não sei se esse comportamento confuso é específico dos sistemas derivados do Redhat ou não.
~/.bashrc
é originado pelo bash quando executado como um shell não-login. (Para quando ele é executado como um shell de login, os documentos do bash sugerem você precisa ter certeza de que ~./bashrc
é originado manualmente no seu ~/.bash_profile
).
Mas quando você executa sh
, ~/.bashrc
não é originado. sh
não fornece nada a menos que seja executado como um shell de login.
Uma maneira possível de evitar essa confusão é se você preferir sudo -i
, que executa um shell de login. O shell usado é escolhido com base no shell do usuário de destino (por exemplo, root
por padrão).