Parece ser um bug gawk
$ echo foo | gawk '{print system("sleep 3")}'
^C0
$
Parece relacionado a Faça bash sair! = 0 quando chamado pelo AWK e interrompido com ^ C
Solução alternativa do gawk, cortesia de Keith
$ echo foo | awk '{if(system("sleep 3 && exit 42")==42){print "completed"}else{print "interrupted"}}'
completed
$ echo foo | awk '{if(system("sleep 3 && exit 42")==42){print "completed"}else{print "interrupted"}}'
^Cinterrupted
$
nawk lida corretamente
$ echo foo | nawk '{print system("sleep 3")}'
^C0.0078125
$