ฉันจะดีบัก bash ที่สำเร็จได้อย่างไร


14

ฉันได้สร้างฟังก์ชั่นเติมเต็มของ bash ที่ดูเหมือนว่าทำงานได้อย่างอิสระ แต่ให้ผลลัพธ์ที่ไม่คาดคิดเมื่อฉันพยายามที่จะทำแท็บให้เสร็จ

เป็นไปได้หรือไม่ที่จะเชื่อมต่อ bashdb จากนั้นลองแท็บทำสิ่งใดสิ่งหนึ่งและผ่านขั้นตอนการตรวจแก้จุดบกพร่องและตรวจสอบว่ามีอะไรผิดปกติหรือไม่


2
เพียงเพิ่มของฉันในเซ็นต์: คุณควรใช้set -xin in bash เพื่อดีบักสคริปต์ของคุณ ใช้set +xเพื่อปิดการใช้งาน

คำตอบ:


6

set -x

หากคุณset -xอยู่ในเซสชันโต้ตอบหรือสคริปต์เติมข้อความอัตโนมัติเอง (เกือบ?) ทุกคำสั่งและผลลัพธ์จะถูกพิมพ์ออกมา ซึ่งรวมถึงงานที่ทำภายในสคริปต์เติมข้อความอัตโนมัติ

set +xนี้จากนั้นจะสามารถเงียบกลับลงมาอีกครั้งกับ

-x

หลังจากขยายแต่ละคำสั่งอย่างง่ายสำหรับคำสั่งคำสั่ง case เลือกคำสั่งหรือเลขคณิตสำหรับคำสั่งแสดงค่าที่ขยายของ PS4 ตามด้วยคำสั่งและอาร์กิวเมนต์ที่ขยายหรือรายการคำที่เกี่ยวข้อง

- จากคู่มือทุบตี # ชุดติดตั้งในตัว


2

เพียงบันทึก / เอาท์พุทจากฟังก์ชั่นเติมเต็มของ bash; ขณะที่พวกมันดูเหมือนจะไม่มีวิทยาศาสตร์จรวดสิ่งนี้น่าจะง่ายพอสมควร อาจเป็นไปได้ที่จะเชื่อมต่อ bashdb แต่รู้สึกว่าไม่จำเป็น ...


การเชื่อมต่อ bashdb นั้นง่ายกว่ามากและฉันคาดว่าเร็วกว่าการเพิ่มคำสั่งบันทึกลงในสคริปต์ อย่างไรก็ตามฉันไม่ทราบว่าเป็นไปได้หรือไม่และการขาดคำตอบแนะนำว่าไม่ใช่ ฉันจัดการเพื่อแก้ไขปัญหาของฉันโดยการบันทึกสถานะไปยังไฟล์อย่างที่คุณแนะนำ แต่การส่งออกข้อมูลการบันทึกไปยังเทอร์มินัลไม่เป็นประโยชน์เมื่อทำงานกับความสมบูรณ์
Dan Midwood

3
@DanMidwood: ใช้สองขั้ว (เช่นหน้าจอ + แยก) ในหนึ่งรันการเสร็จสมบูรณ์ในสองtail -fบันทึก
choroba

@choroba: เป็นคนดี : D
Tamara Wijsman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.