Tôi đang cố gắng gỡ lỗi những gì bash làm khi khởi tạo đăng nhập cho Linux. Tôi đã đọc rằng "bash -x" sẽ làm cho bash in ra những gì nó đang làm, nhưng nó không in các lệnh trong các tệp có nguồn gốc như "set -x". Tôi không thể sử dụng "set -x" vì khởi tạo chạy trước khi tôi có thể gọi nó. "Bash -x" dường như tái diễn tốt trên OS X, nhưng đó có thể là do các phiên bản bash.
Linux: 3.2.25
HĐH X: 3.2.48
Đây là một đoạn trích về hành vi không đệ quy trên 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 ...
Lưu ý cách /etc/profile.d/vim.sh có nguồn gốc, nhưng các lệnh của nó không được in. Có một cách giải quyết mà không cần nâng cấp? Đây có phải là do sự khác biệt phiên bản?