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/