#!/bin/bash #function called by trap do_this_on_ctrl_c(){ echo "Exited the loop, there were $i number of loops executed !" date exit 0 } trap 'do_this_on_ctrl_c' SIGINT loopN=0 while true do echo "Loop Number = $i" i=$(($i+1)) done
Strg + C, um eine Endlosschleife zu unterbrechen und dann etwas außerhalb der Schleife in einem Bash-Skript auszuführen, ohne zu beenden?
1145
quanta
Ich habe so viele Antworten gelesen und sie schlagen alle vor, das Skript zu töten oder in den Hintergrund zu senden usw. Was ich will, ist
während wahr wahr
etwas...
if (ctrl + c wird auf break gedrückt)
Echo "Aus der Schleife"
Ich bin außerhalb der Schleife, weil Strg + C gedrückt wurde und ich hier andere Sachen machen kann, ohne das Skript zu beenden ....
Und diese Frage ist kein Duplikat, denn ich habe stundenlang gesucht und keine Antwort gibt mir, was ich will. Das "Out of the Loop" wird nie gedruckt, ich habe so viele Beispiele aus verschiedenen Antworten ausprobiert!
Info: Ich verwende (1) Scientific Linux SL Version 5.4 (Boron), (2) Ubuntu 16.04
Edit: Ich möchte, dass genau dieser Code funktioniert
#!/bin/bash loopN=0 while true do echo "Loop Number = $i" i=$(($i+1)) #I want to break this loop when Ctrl+C is pressed done #Ctrl+C has been pressed so I am outside the loop going to do something.. echo "Exited the loop, there were $i number of loopsexecuted !" #here I will execute some commands.. let's say date date #and then I will exit the script
Sie möchten ** fangen ** '' Ctrl-C '' Hier sind einige Beispiele http://stackoverflow.com/questions/12771909/bash-using-trap-ctrlc Wenn Sie eine spezifischere Hilfe benötigen, zeigen Sie uns, was Sie versucht haben ( tatsächlicher Code)
Nifle vor 7 Jahren
0
@Nifle Ich habe ein Beispiel beigefügt. Wie kann ich dieses spezielle Beispiel funktionieren lassen?
quanta vor 7 Jahren
0
1 Antwort auf die Frage
2
Nifle
Genau das wollte ich, vielen Dank. Ich habe bemerkt, dass dies funktioniert, wenn ich es mit `. / Script.sh` ausführe, aber es schlägt fehl, wenn ich es mit 'source script.sh` mache. Ich bin in diesem Scripting-Bereich wirklich neu, möchte aber sehr gerne lernen.
quanta vor 7 Jahren
0
seltsames Problem wieder! Es funktioniert unter Scientific Linux (SL-Release 5.4 Boron), aber unter Ubuntu 16.04 hebt mich "Strg + C" aus dem Skript heraus, bevor überhaupt die Funktion "do_this_on_ctrl_c ()" aufgerufen wird. Was muss ich tun, damit es auf meinem Ubuntu funktioniert?
quanta vor 7 Jahren
0
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4