[Comm] Кто получает SIGINT в пайпе?

Valentin Lavrinenko =?iso-8859-1?q?lvu_=CE=C1_uaservice=2Ecom=2Eua?=
Ср Ноя 16 15:43:55 MSK 2005


Hi, All!

Задача следующая: мне надо запустить некоторую команду в bash скрипте 
таким образом,
чтобы:
1) Вывод команды одновременно шел на консоль и в файл
2) Была возможность определить код возврата команды
3) Команда нормально прерывалась по Ctrl-C

1) рещается с помощью tee, это понятно - пишем command | tee file. 
Насчет 2) долго рылся,
в конце концов нашел полезную bash'евскую фичу PIPESTATUS.  Проблема 
сейчас с 3) - насколько
я понял, SIGINT от Ctrl-C получает последняя команда пайпа, т.е. tee. В 
результате "основная"
команда, судя по всему, получает SIGPIPE вместо SIGINT, и выполняет 
совсем не те действия,
которые нужно (опять же, возвращает не тот код ошибки).

Вопрос: можно ли как-то заставить bash (или кто там за это отвечает?) 
отдавать SIGINT первой
(в общем случае - произвольной) команде в пайплайне? Я, в общем-то, могу 
написать свою обертку
на C, которая будет выполнять все пункты 1) - 3), но если есть 
возможность сделать это стандартными
средствами - изобретать велосипед неохота.





Подробная информация о списке рассылки community