ฉันพยายามที่จะดีบักสิ่งที่ทุบตีในการเริ่มต้นเข้าสู่ระบบสำหรับ Linux ฉันได้อ่านแล้วว่า "bash -x" จะทำให้ bash พิมพ์สิ่งที่มันกำลังทำอยู่ แต่ไม่ได้พิมพ์คำสั่งในไฟล์ที่มาเช่น "set -x" ฉันไม่สามารถใช้ "set -x" เพราะการเริ่มต้นทำงานก่อนที่ฉันจะเรียกมันว่า "bash -x" ดูเหมือนว่าจะสามารถใช้งานได้ดีกับ OS X แต่อาจเป็นเพราะรุ่นทุบตี
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 มีที่มาอย่างไร แต่คำสั่งนั้นจะไม่ถูกพิมพ์ มีวิธีแก้ปัญหาโดยไม่ทำการอัพเกรดหรือไม่? สิ่งนี้เกิดจากความแตกต่างของเวอร์ชั่นหรือไม่?