Ich möchte ein Bash-Skript erstellen, um eine einfache Aufgabe zu automatisieren. Diese Aufgabe beinhaltet die Ausführung eines program
(nicht von mir erstellten) Befehls, der etwas tut, bis der Benutzer STRG+C drückt. Danach muss ich process the output
… Ich habe Folgendes geschrieben:
#!/bin/bash
program
process the output
program
startet wie erwartet, wird aber nicht ausgeführt, wenn ich STRG+C drücke process the output
. Ich wette, mein Skript wird bei STRG+C einfach komplett beendet.
Wie kann ich erreichen, was ich brauche?
Antwort1
Legen Sie einen Signalhandler für SIGINT fest:
trap "echo Ctrl+C received" INT
program
trap - INT
process the output