หลายโปรแกรมที่สร้างการตรวจจับเอาต์พุตสีหากพวกเขากำลังเขียนไปยัง TTY และปิดสีหากพวกเขาไม่ได้ เนื่องจากรหัสสีนั้นน่ารำคาญเมื่อคุณต้องการจับภาพข้อความเท่านั้นดังนั้นพวกเขาจึงพยายาม "ทำสิ่งที่ถูกต้อง" โดยอัตโนมัติ
วิธีที่ง่ายที่สุดในการจับเอาท์พุทสีจากโปรแกรมเช่นนั้นคือบอกให้เขียนสีแม้ว่ามันจะไม่ได้เชื่อมต่อกับ TTY คุณจะต้องอ่านเอกสารของโปรแกรมเพื่อดูว่ามีตัวเลือกนั้นหรือไม่ (เช่นgrep
มี--color=always
ตัวเลือก)
คุณสามารถใช้expect
สคริปต์unbuffer
เพื่อสร้างหลอกแบบนี้:
echo barney | unbuffer grep barney | sed -n 1,$\ p
less
สามารถรับการป้อนข้อความ colorized (ดี :) ... เช่น:tree -C ~/ |less -R
หรือls -lR --color=always . |less -R