In Bash werde ich gelegentlich eine Liste von Befehlen eingeben und drücken Enterund erst später feststellen, dass am Ende der Liste ein Fehler mit einem Befehl vorliegt. Ich weiß, dass wenn ich Ctrl+ drücke C, der aktuell ausgeführte Befehl beendet und der Rest der Liste abgebrochen wird. Gibt es eine Möglichkeit, den Rest der Liste abzubrechen, ohne den aktuell ausgeführten Befehl zu beenden?
Nehmen wir zum Beispiel an, ich habe so etwas eingegeben
foo; bar
oder
foo && bar
Wo foo
ist ein lang laufender Befehl, dass es sehr wichtig ist, nicht zu unterbrechen, und bar
etwas irreversibles und unerwünschtes tut (sagen wir shutdown -h now
oder rm -rf /
). Gibt foo
es eine allgemeine Möglichkeit, der Shell zu sagen, dass sie foo
fertig sein soll, aber nicht bar
danach laufen soll, während sie noch läuft ? (Ja, ich könnte die Berechtigungen bar
so ändern , dass sie nicht ausführbar sind, aber das ist nicht besonders praktisch, wenn ich so bar
etwas rm
in der Zwischenzeit verwenden möchte, und es funktioniert auch nicht, wenn ich es nicht besitze bar
oder wenn bar
es integriert ist.)
bar
Befehl insome_command
: ändern ,^bar^some_command
bevor er ausgeführt wird.