Bash-Skript, das Dinge tun soll, wenn der erste Befehl durch STRG+C unterbrochen wird

Bash-Skript, das Dinge tun soll, wenn der erste Befehl durch STRG+C unterbrochen wird

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

programstartet 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

verwandte Informationen