Я пытаюсь отладить действия bash при инициализации входа в систему для Linux. Я читал, что "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, но его команды не выводятся. Есть ли обходной путь без обновления? Это связано с разницей версий?