Ich versuche zu debuggen, was Bash bei der Login-Initialisierung für Linux macht. Ich habe gelesen, dass "bash -x" Bash zum Ausdrucken bringt, was es tut, aber es druckt keine Befehle in Quelldateien wie "set -x". Ich kann "set -x" nicht verwenden, da die Initialisierung ausgeführt wird, bevor ich sie aufrufen kann. "bash -x" scheint unter OS X in Ordnung zu sein, aber das könnte an den Bash-Versionen liegen.
Linux: 3.2.25
OS X: 3.2.48
Hier ist ein Auszug aus dem nicht rekursiven Verhalten unter 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 ...
Beachten Sie, wie /etc/profile.d/vim.sh bezogen wird, die Befehle jedoch nicht gedruckt werden. Gibt es eine Problemumgehung ohne Upgrade? Wird dies durch den Versionsunterschied verursacht?