Bash:
การใช้งานโปรแกรมดีบักเกอร์
วิธีการ:
Bash ไม่มาพร้อมกับ debugger ในตัวเหมือนบางภาษาอื่น ๆ แต่คุณสามารถใช้คำสั่งในตัวเช่น set -x
เพื่อติดตามสิ่งที่เกิดขึ้น หรือเพื่อการอัปเกรด มี bashdb
ซึ่งเป็น debugger ที่เหมาะสมในการเดินผ่านโค้ดของคุณ นี่คือการดูอย่างรวดเร็ว:
# การใช้ set -x เพื่อ debug
set -x
echo "เริ่มการดีบัก"
my_var="สวัสดี, โลกของการดีบัก!"
echo $my_var
set +x
# การใช้ bashdb
# ติดตั้ง bashdb ด้วย package manager ของคุณ เช่น apt, yum, brew.
# ดีบักสคริปต์ที่ชื่อ my_script.sh:
bashdb my_script.sh
ผลลัพธ์เมื่อเรียกใช้ด้วย set -x
:
+ echo 'เริ่มการดีบัก'
เริ่มการดีบัก
+ my_var='สวัสดี, โลกของการดีบัก!'
+ echo 'สวัสดี, โลกของการดีบัก!'
สวัสดี, โลกของการดีบัก!
+ set +x
ดำดิ่งลึกลงไป
ในอดีต, การดีบักสคริปต์ Bash หมายถึงการฝังคำสั่ง echo
ลงในโค้ดของคุณ แต่แล้ว set -x
ก็ปรากฏขึ้น ให้เราดูการดำเนินการรันไทม์โดยไม่ต้องพิมพ์ด้วยตนเอง และสำหรับผู้ที่มีความต้องการควบคุมมากขึ้น bashdb
ก็ปรากฏขึ้น ได้แรงบันดาลใจจาก debugger gdb สำหรับภาษา C/C++.
ส่วนทางเลือกอื่น ๆ นอกเหนือจากคำสั่ง set
(-x
, -v
, -e
), ตัวเลือกอื่น ๆ รวมถึงการเปลี่ยนเส้นทางข้อมูลออกไปยังไฟล์เพื่อการวิเคราะห์หรือการใช้เครื่องมือภายนอกเช่น ShellCheck สำหรับการวิเคราะห์แบบสแตติก
ในเรื่องของการใช้งาน, set -x
นั้นง่าย มันเป็นตัวเลือกของ Bash ในตัวที่พิมพ์คำสั่งและอาร์กิวเมนต์ของพวกเขาขณะที่ถูกเรียกใช้ bashdb
, ในทางกลับกัน ช่วยให้คุณสามารถเดินผ่านโค้ด, ตั้งจุดหยุด, และประเมินนิพจน์ - สิ่งต่าง ๆ ที่ให้คุณมีโอกาสต่อสู้กับบัคที่ยากจะค้นพบมากขึ้น
ดูเพิ่มเติม
- โปรเจค Bash Debugger: http://bashdb.sourceforge.net/
- “Pro Bash Programming” โดย Chris Johnson และ Jayant Varma สำหรับการเขียนสคริปต์ขั้นสูง
- ShellCheck สำหรับการวิเคราะห์แบบสแตติก: https://www.shellcheck.net/