Я намагаюся налагодити, що робить bash при ініціалізації входу для Linux. Я читав, що "bash -x" змусить bash друкувати те, що він робить, але він не друкує команди в джерелах файлів, як "set -x". Я не можу використовувати "set -x", тому що ініціалізація працює до того, як я можу викликати це. "bash -x", схоже, повторюється в OS X, але це може бути через версії bash.
Linux: 3.2.25
ОС 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 виділяється, але його команди не друкуються. Чи існує рішення без оновлення? Це викликано різницею версій?