Я верю Ctrl- Cможно поймать в ловушку bash-скриптов. Возможно ли перехватить его внутри скрипта Awk для обработки этого события?
Например, для прерывания обработки, но для печати результатов того, что уже было обработано, а не просто для тихого выхода?
shell-script
awk
trap
Евгений Бересовский
источник
источник
Ответы:
Я не знаю ни о какой
awk
реализации, которая имеет поддержку для этого. Вы можете написать расширение дляgawk
этого , но здесь я бы лучше переключился на другой язык.perl
позволяет легко конвертироватьawk
скрипты с егоa2p
скриптом.Например, если у вас есть такой
awk
скрипт:a2p
на это даст вам что-то вроде:То, что вы можете отредактировать, чтобы добавить свою обработку сигналов (и удалить ту обработку
var=value
аргументов, которую мы здесь не хотим, и часть, предназначенную для систем, которые не поддерживают#!
):Другой альтернативой может быть , чтобы прервать подачу данных к
awk
, и имеютawk
игнорировать SIGINT, как вместо того , чтобы :делать:
Ctrl+Cпотом убью
cat
но неawk
.awk
будет продолжать обрабатывать оставшиеся входные данные, все еще находящиеся в канале.Для обнаружения Ctrl+Cин
awk
, вы можете сделать:источник