annotate-output
สคริปต์จาก Debian ของdevscripts
ช่วยให้คุณทำเช่นนี้การคัดเลือก:
$ annotate-output ls -ld /test
14:54:22 -: Started ls -ld /test
14:54:22 E: ls: cannot access /test: No such file or directory
14:54:22 -: Finished with exitcode 2
คอลัมน์ที่สองระบุ stdout และ stderr ด้วยO
และE
ตามลำดับ
มีข้อแม้อยู่บ้างข้อที่สำคัญอยู่ในคำตอบอื่น ๆ : คุณไม่สามารถทำได้หลังจากข้อเท็จจริง ทั้งเชลล์และเทอร์มินัลไม่ทราบว่าโปรแกรมใดใช้ตัวบ่งชี้ไฟล์ของตัวเองอย่างไรแม้ว่าเชลล์จะรับผิดชอบในการตั้งค่าเริ่มต้น
วิธีนี้ใช้ Fifos การเขียนไปที่ Fifo สามารถทำงานได้แตกต่างจากการเขียนไปยัง tty และการเขียนถึง Fifos ที่แตกต่างกันสองอย่างนั้นแตกต่างกันอย่างแน่นอน นอกจากนี้ยังไม่เหมาะสำหรับการใช้เชิงโต้ตอบเช่นannotate-output bash
ไม่ใช่แผนการที่ยอดเยี่ยม แต่มีประโยชน์สำหรับวัตถุประสงค์อื่น ๆ มีตัวอย่างสคริปต์และฟังก์ชันเชลล์จำนวนมากในการตอบคำถามที่เกี่ยวข้องเกี่ยวกับ colorising stdin / stdout / stderr ที่แข็งแกร่งที่สุดคือstderrdซึ่งใช้การแก้ไขรันไทม์ของโปรแกรม (ส่วนใหญ่) เพื่อแก้ไขข้อมูลที่เขียนไปยัง stderr
คำถามนี้ที่ Anko เชื่อมโยงไปยังมีคำตอบที่ดีเกี่ยวกับชุดรูปแบบที่เกี่ยวข้อง: colorizing ผลลัพธ์ stdout / stderr:
ฉันสามารถกำหนดค่าเปลือกของฉันเพื่อพิมพ์ STDERR และ STDOUT ในสีที่ต่างกันได้หรือไม่?