Linuxのログイン初期化時にbashが何を行うかをデバッグしようとしています。「bash -x」は、bashが実行していることを出力することを読みましたが、「set -x」のようにソースファイル内のコマンドを出力しません。「set -x」を使用することはできません。呼び出す前に初期化が実行されるためです。"bash -x"はOS Xでは正常に再帰するようですが、bashのバージョンが原因である可能性があります。
Linux:3.2.25
OS X:3.2.48
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 ...
/etc/profile.d/vim.shがどのようにソースされているかに注意してください。ただし、そのコマンドは出力されません。アップグレードせずに回避策はありますか?これはバージョンの違いが原因ですか?