ในสคริปต์ข้อผิดพลาดมักจะถูกส่งไปยัง file descriptor 2 ด้วย&2
เช่น:
echo "error" >&2
บางครั้ง/dev/stderr
ใช้แทน:
echo "error" > /dev/stderr
มองไปที่/dev/stderr
ฉันเห็นว่ามันเป็นเพียง symlink ไป/proc/self/fd/2
ซึ่งในทางกลับกันคือ symlink ไปที่/dev/pts/5
(ใน terminal ปัจจุบันของฉัน)
ดูเหมือนซับซ้อนกว่าเล็กน้อย มีเหตุผลบางอย่างที่อยู่เบื้องหลังหรือไม่
มีการใช้/dev/stderr
และ&2
เทียบเท่า?
เป็นที่ชื่นชอบมากกว่าคนอื่น ๆ ?
>2
หรือ>&2
?
echo "error" >2
สร้างไฟล์ที่มีชื่อและเนื้อหา2
error