LINUX.ORG.RU

Казалось бы, при чём тут zsh?

Разве что он будет перенаправлять поток ошибок на себя и потом разукрагивать его. Ну так это можно и вручную, если очень хочется :)

prog 2|beautifier :)

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

А что это за конструкция 2| ? У меня не работает.

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

>Казалось бы, при чём тут zsh? Разве что он будет перенаправлять поток ошибок на себя и потом разукрагивать его.

Ну, и в каком shell это возможно?

mr ★★
() автор топика

Неужто здесь нет людей, разбирающихся в shell-программировании?

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

Посмотри на colorgcc. Это перловый скрипт, который обрабатывает вывод компилятора и подкрашивает ошибки и предупреждения.

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

Адресом не ошибся? :)
Здесь вообще-то развлекательный портал, а не профессиональный unix-форум.

spinore
()

>http://www.linux.org.ru/jump-message.jsp?msgid=1393096

А можно ли вообще это сделать? Даже если можно сохранить текущие цветовые настройки, то как быть с атомарностью вывода. Что бы все работало нужно чтобы операция (сохранить настройки, вывести строку, вернуть настройки) была атомарной.

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

что-то придумал!

$cat ~/bin/colorer
#!/bin/bash
while true; do
read i ;
echo -e "\033[31m$i\033[0m"
done;

затем
$ mkfifo /tmp/stderr
$ (cat /tmp/stderr | colorer) &
$ че-нть 2>/tmp/stderr

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

хорошо бы еще обычный stderr перенаправить на /tmp/stderr fifo, но
$exec 2>/tmp/stderr
почему-то работает не так как хочется :(

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

Мысль интересная, почти работает, но только этот colorer почему-то после конца вывода продолжает в бесконечном цикле читать и выводить какие-то непонятные пустые строки, непонятно почему это происходит.

Но всё же хочется знать, можно ли это сделать без фифо. Конвейер | читает из stdout, а есть ли в shell конвейер, который читает из stderr?

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

Какая-то ерунда с самим фифо получается. Делаю "colorer < ~/tmp/stderr", если сделать "ps adsadas 2>~/tmp/stderr", то результат непредсказуемый получается--то работает, то не работает :(

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

можно еще stdout и stderr местами поменять

command 3>&2 2>&1 1>&3- | colorer

только я не уверен, что это хорошая идея.

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