Ich glaube Ctrl- Ckann in Bash-Skripten gefangen sein. Ist es auch möglich, es in einem Awk-Skript abzufangen, um dieses Ereignis zu behandeln?
Zum Beispiel, um die Verarbeitung abzubrechen, aber die Ergebnisse dessen zu drucken, was bereits verarbeitet wurde, anstatt nur stillschweigend zu beenden?
shell-script
awk
trap
Eugene Beresovsky
quelle
quelle
Antworten:
Mir ist keine
awk
Implementierung bekannt, die dies unterstützt. Sie könnten eine Erweiterung für schreibengawk
dafür , aber hier, würde ich eher in einer anderen Sprache wechseln.perl
macht es einfach,awk
Skripte mit seinema2p
Skript zu konvertieren .Zum Beispiel, wenn Sie ein
awk
Skript haben wie:a2p
darauf gibt es dir so etwas wie:Welche können Sie bearbeiten, um Ihre Signalbehandlung hinzuzufügen (und die Verarbeitung von
var=value
Argumenten, die wir hier nicht wollen, und den Teil, der für Systeme gedacht ist, die nicht unterstützen, entfernen#!
):Eine weitere Alternative könnte sein , die zu unterbrechen Zuführung von Daten zu
awk
und hatawk
die SIGINT ignorieren, wie statt:tun:
Ctrl+Cwird dann
cat
aber nicht tötenawk
.awk
Die verbleibende Eingabe wird weiterhin in der Pipe verarbeitet.Um das Ctrl+CIn zu erkennen
awk
, können Sie Folgendes tun:quelle