LINUX.ORG.RU

color stderr red


0

0

Как бы это так проще всего сделать чтобы вывод какой-нибудь команды в stdout туда же без изменений и направлялся, а вывод на stderr показывался в консоли например красным цветом либо в любой другой способ был обозначен.

Скажем:
bla
bla
stderr: bla
bla

как-нибудь в стиле
command 2>some_funny_pipe?

А как проще всего?

Проще, хорошенько подумать и оставить так как есть.

anonymous
()

command | green.sh
stdout будет зелёным, stderr соотв. цветом по умолчанию
green.sh :
#!/bin/sh
while [ true ] ; do
 read str
 if [ $? -ne 0 ] ; then
   exit
 fi
 echo -e "\e[32m$str\e[38m"
done
для полной информации man bash,man console_codes

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

А вот так можно дважды поменять местами потоки, пропустив второй через green.sh и раскрасив именно stderr, а не stdout:

{ command 3>&1 1>&2 2>&3 | green.sh; } 3>&1 1>&2 2>&3

Да, и я бы рекомендовал 0m, а не 38m.

Jini ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.