Estou tentando depurar o que o bash faz na inicialização do login para Linux. Eu li que "bash -x" fará com que o bash imprima o que está fazendo, mas não imprime comandos em arquivos de origem, como "set -x" faz. Não consigo usar "set -x" porque a inicialização é executada antes que eu possa chamá-lo. "bash -x" parece ser bem remunerado no OS X, mas isso pode ser devido às versões do bash.
Linux: 3.2.25
OS X: 3.2.48
Aqui está um trecho do comportamento não recorrente no Linux:
bash -l -x -c 'echo 1'
# ... snip ...
+ for i in '/etc/profile.d/*.sh'
+ '[' -r /etc/profile.d/vim.sh ']'
+ '[' '' ']'
+ . /etc/profile.d/vim.sh
+ for i in '/etc/profile.d/*.sh'
+ '[' -r /etc/profile.d/which-2.sh ']'
+ '[' '' ']'
+ . /etc/profile.d/which-2.sh
# ... snip ...
Observe como o /etc/profile.d/vim.sh é originado, mas seus comandos não são impressos. Existe uma solução alternativa sem atualizar? Isso é causado pela diferença de versão?