Saya percaya Ctrl- Cdapat terjebak dalam skrip bash. Apakah mungkin untuk menjebaknya di dalam skrip Awk untuk menangani peristiwa itu?
Misalnya, untuk membatalkan pemrosesan, tetapi mencetak hasil dari apa yang sudah diproses, bukan hanya berhenti secara diam-diam?
shell-script
awk
trap
Eugene Beresovsky
sumber
sumber
Jawaban:
Saya tidak mengetahui adanya
awk
implementasi yang memiliki dukungan untuk itu. Anda dapat menulis ekstensi untukgawk
itu , tetapi di sini, saya lebih suka beralih ke bahasa lain.perl
membuatnya mudah untuk mengkonversiawk
skrip dengana2p
skripnya.Misalnya, jika Anda memiliki
awk
skrip seperti:a2p
di atasnya akan memberi Anda sesuatu seperti:Yang dapat Anda edit untuk menambahkan penanganan sinyal Anda (dan menghapus pemrosesan
var=value
argumen yang tidak kita inginkan di sini, dan bagian yang ditujukan untuk sistem yang tidak mendukung#!
):Alternatif lain bisa untuk mengganggu makan data ke
awk
, dan memilikiawk
mengabaikan SIGINT itu, seperti bukan:melakukan:
Ctrl+Ckemudian akan membunuh
cat
tetapi tidakawk
.awk
akan tetap memproses sisa input yang masih dalam pipa.Untuk mendeteksi Ctrl+Cdalam
awk
, Anda bisa melakukan:sumber