Багато програм, які генерують кольоровий вихід, виявляють, чи пишуть вони на TTY, і вимикають кольори, якщо їх немає. Це пояснюється тим, що кольорові коди дратують, коли ви хочете лише зафіксувати текст, тому вони намагаються "зробити правильно" автоматично.
Найпростіший спосіб зафіксувати кольоровий вихід з такої програми - це сказати йому записати кольори, навіть якщо він не підключений до TTY. Вам доведеться прочитати документацію програми, щоб з’ясувати, чи є у неї така опція. (наприклад, grep
є --color=always
варіант.)
Ви також можете використовувати expect
сценарій, unbuffer
щоб створити такий псевдо-tty:
echo barney | unbuffer grep barney | sed -n 1,$\ p
less
може приймати кольоровий текст (приємно :) ... наприклад:tree -C ~/ |less -R
абоls -lR --color=always . |less -R