OS X, bash: ใช้งานได้กับตัวอธิบายไฟล์ที่เปิดน้อยกว่า cat ไม่ทำงาน
ในสคริปต์ทุบตีที่ฉันกำลังทำงาน (ซึ่งต้องทำงานบน Ubuntu และ OS X) ฉันต้องเปลี่ยนเส้นทางเอาต์พุตของคำสั่งหลายร้อยไปยังไฟล์ แทนที่จะเพิ่ม&>...พวกเขาทั้งหมดต่อท้ายฉันก็ทำได้ exec 9>&1 exec 5<>/tmp/some-file.txt exec 1>&5 จนถึงตอนนี้ดีมาก แต่ครึ่งหนึ่งของคำสั่งเหล่านั้นฉันต้องอ่านทุกอย่างที่เขียนไปแล้วในขณะที่เปิดไฟล์ descriptor ไว้ ตอนนี้บน Ubuntu ฉันสามารถทำได้ cat /dev/fd/5 หรือ tee </dev/fd/5 แต่ใน OS X ไม่มีอะไรถูกพิมพ์เลย (และคำสั่งจะออกทันที) อย่างไรก็ตามการใช้lessฉันสามารถดูเนื้อหาของไฟล์ทั้งสอง ฉันสามารถบรรลุผลข้างต้น (ทำงานกับทั้งสองระบบปฏิบัติการ) โดยใช้ less /dev/fd/5 | tee แต่ดูเหมือนว่าแฮ็ค ดังนั้นเหตุใดจึงlessเห็นสิ่งที่catไม่สามารถใช้กับ OS X ได้ (หรือลูกหลาน BSD ทุกคนได้รับผลกระทบหรือไม่) หรือฉันกำลังทำอะไรผิดพลาด?