Sie müssten diesen Code in eine Endlosschleife schreiben, wie zum Beispiel:
while 1; do # Rest of code ... done
Um zu stoppen, wenn Ctrl+ Cgetroffen wird, ist das, was Sie tatsächlich tun, ein Signal abzufangen (konkret SIGINT
). Sie müssen a definieren, trap
damit es ausgelöst wird, wenn Sie diese Tastenkombination drücken.
Für weitere Informationen über Fallen, können Sie sich auch hier, das eine schließt SIGINT
Beispiel und wie Sie etwas nach dem Fang es drucken.
trap [BEFEHLE] [SIGNALE]
Dadurch wird der Trap-Befehl angewiesen, die aufgelisteten SIGNALS abzufangen. Dies können Signalnamen mit oder ohne SIG-Präfix oder Signalnummern sein. Wenn ein Signal 0 oder EXIT ist, werden die BEFEHLE ausgeführt, wenn die Shell beendet wird. Wenn eines der Signale DEBUG ist, wird die Liste der BEFEHLE nach jedem einfachen Befehl ausgeführt. Ein Signal kann auch als ERR angegeben werden. In diesem Fall werden COMMANDS jedes Mal ausgeführt, wenn ein einfacher Befehl mit einem Status ungleich Null beendet wird. Beachten Sie, dass diese Befehle nicht ausgeführt werden, wenn der Exit-Status ungleich Null von einem Teil einer if-Anweisung oder von einer while- oder einer bis-Schleife stammt. Sie werden auch nicht ausgeführt, wenn ein logisches AND (&&) oder OR (||) zu einem Exit-Code ungleich Null führt oder wenn der Rückkehrstatus eines Befehls mit dem! Operator.