การเขียนไปยังข้อผิดพลาดมาตรฐาน

Fish Shell:
การเขียนไปยังข้อผิดพลาดมาตรฐาน

วิธีทำ:

ใน Fish Shell, คุณสามารถเขียนไปยัง stderr โดยการเปลี่ยนทิศทางผลลัพธ์ของคุณโดยใช้ >&2 นี่คือตัวอย่างพื้นฐาน:

echo "This is an error message" >&2

คำสั่งนี้เพียง echo ข้อความไปยัง stderr แทนที่จะเป็น stdout หากคุณจะเขียนสคริปต์ที่ส่งออกข้อความปกติและข้อความผิดพลาด คุณอาจทำอะไรบางอย่างเช่นนี้:

echo "Starting the process"
echo "An error occurred" >&2
echo "Process completed"

ผลลัพธ์ตัวอย่างหากคุณรันสคริปต์และเปลี่ยนทิศทาง stderr ไปยังไฟล์:

Starting the process
Process completed

ข้อความผิดพลาดจะไม่ปรากฏใน standard output แต่จะพบในไฟล์ที่คุณเปลี่ยนทิศทาง stderr ไป

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

function log_error
    echo $argv >&2
end

log_error "This is an advanced error message"

ฟังก์ชัน log_error นี้จะรับสตริงใด ๆ ที่คุณให้ไปและเขียนมันไปที่ stderr การใช้ฟังก์ชันเช่นนี้สามารถช่วยให้การจัดการข้อผิดพลาดของคุณสะอาดและสอดคล้องกันทั่วทั้งสคริปต์ของคุณ