Unterbrechen Sie gewaltsam eine for-Schleife in sh

8

Wenn ich in sh eine for-Schleife in der Befehlszeile ausführe und Strg-C drücke, wird der aktuell ausgeführte Prozess normalerweise abgebrochen. Daher muss ich ^ C gedrückt halten, bis die Shell selbst sie abfängt und die Schleife unterbricht. Gibt es eine Möglichkeit, den aktuellen Prozess und die Schleife sofort zu unterbrechen?

ZimmyDubZongyZongDubby
quelle

Antworten:

12

Der einfachste Weg, den ich kenne, wäre, den Vordergrundjob ( ^Z) anzuhalten und ihn dann mit der Job-ID ( kill %<JOB_ID>) zu beenden .

Beispiel:

[me@host]$ while [ : ]; do less /etc/motd; done   # Ctrl-C can't kill this

Nach einem Ctrl+z

[1]+  Stopped                 less /etc/motd

[me@host]$ kill %1
[me@host]$

Die Nummer in den Klammern ( [1]) am Anfang der Suspendierungsnachricht gibt Ihnen die Job-ID.

Mit dem jobsBefehl können Sie auch IDs angehaltener Jobs auflisten .

Shawn Chin
quelle