Fish Shell:
การพิมพ์ผลลัพธ์การแก้ไขโค้ด
วิธีการ:
คุ้นเคยกับ echo
- มีดสวิสสำหรับการแสดงผลใน Fish นี่คือวิธีการเพิ่มการพิมพ์ดีบักเข้าไปในสคริปต์เชลล์ของคุณ
function greet
set name $argv[1]
echo "เฮ้, $name! มาดีบักกันเถอะ."
echo "กำลังรันฟังก์ชัน greet" >&2
end
greet "Ada"
ตัวอย่างผลลัพธ์:
เฮ้, Ada! มาดีบักกันเถอะ.
กำลังรันฟังก์ชัน greet
Standard out (stdout
) นั้นเป็นเวทีหลักของสคริปต์ของคุณ แต่สำหรับการพูดคุยดีบัก ให้ใช้ standard error (stderr
) ด้วย >&2
การดำดิ่งลึก
ย้อนกลับไปตอนที่จอภาพมีความลึกเท่ากับความกว้าง การแสดงผลถือเป็นสิ่งที่มีค่า Standard out (stdout
) จึงเป็นช่องทางแสดงผลที่สะอาดสำหรับผู้ใช้ ขณะที่ standard error (stderr
) กลายเป็นช่องทางหลังบ้านสำหรับการสนทนาของโปรแกรมเมอร์เท่านั้น เช่น ข้อมูลดีบัก
ใน Fish, คำสั่งมาตรฐานสำหรับการแสดงผลคือ echo
, printf
, และ print
คำสั่ง echo
เข้าใจง่ายและโดยส่วนใหญ่ใช้สำหรับข้อความง่ายๆ และการดีบักแบบแทรก
คุณไม่ได้ถูกจำกัดเพียงแค่ echo
เท่านั้น ถ้าชอบ printf
สำหรับสตริงที่มีการจัดรูปแบบ หรือใช้การเปลี่ยนทิศทาง (>
หรือ >>
) เพื่อทิ้งข้อมูลดีบักเข้าไปในไฟล์เพื่อตรวจสอบในภายหลัง
สำหรับการประยุกต์ใช้งาน เรื่องที่ใช้ stderr
สำหรับข้อมูลดีบักเป็นข้อตกลงจากโลก Unix ช่วยให้สามารถแยกข้อมูลจริง (actual output) ออกจากเสียงรบกวนดีบัก (debug noise) นั่นหมายความว่าผู้ใช้ยังสามารถทำการ pipe ผลลัพธ์จริงของสคริปต์ได้อย่างมีประสิทธิภาพโดยไม่ต้องกังวลเกี่ยวกับข้อมูลดีบักที่รบกวน
ดูเพิ่มเติม
- คู่มือเชลล์ Fish เกี่ยวกับ คำสั่ง
- StackOverflow: การสนทนาและตัวอย่างสำหรับ การดีบักใน Fish
- Greg’s Wiki: ข้อมูลลึกเกี่ยวกับ การเปลี่ยนทาง I/O