Banyak program yang menghasilkan keluaran berwarna mendeteksi jika mereka menulis ke TTY, dan mematikan warna jika tidak. Ini karena kode warna mengganggu ketika Anda hanya ingin menangkap teks, jadi mereka mencoba untuk "melakukan hal yang benar" secara otomatis.
Cara paling sederhana untuk menangkap keluaran warna dari program seperti itu adalah menyuruhnya menulis warna meskipun tidak terhubung ke TTY. Anda harus membaca dokumentasi program untuk mengetahui apakah ia memiliki opsi itu. (misalnya, grep
memiliki --color=always
opsi.)
Anda juga dapat menggunakan expect
skrip unbuffer
untuk membuat pseudo-tty seperti ini:
echo barney | unbuffer grep barney | sed -n 1,$\ p
less
dapat menerima input teks berwarna (bagus :) ... misalnya:tree -C ~/ |less -R
atauls -lR --color=always . |less -R