У меня есть следующий псевдоним:
alias mca_color='nawk '"'"'BEGIN { arr["Creating shared object"] = "1;31";} \
{ l = $0; for (pattern in arr) \
{ gsub(".*" pattern ".*", "\033[" arr[pattern] "m&\033[0m", l); } print l; }'"'"
Я использую аналогичные псевдонимы для окрашивания других выходов (используя больше шаблонов, но это только для примера).
Итак, этот псевдоним работает, если я использую его следующим образом:
$ echo "-ne Creating shared object test.so ..." | mca_color
echo
напечатано красным. НО, когда я пытаюсь:
$ make | mca_color
и даже
$ make 2>&1 | mca_color
результат не окрашен (и да, make
выполняет "печать" того же текста в конце, если его выполнение).
Есть идеи?
Я думал, что может быть что-то с дочерними процессами или что-то, но, очевидно, труба работает - попробовал это с grep
, попытался перенаправить вывод в файл, все работает.
Даже это не работает (текст печатается, но не цветной):
$ make 2>&1 | grep 'a' | mca_color