Ich habe einige Hardware, die ich mit einem Bash-Skript teste.
#!/bin/bash
tshwctl --setdio=65
for i in $(seq 0 1000)
do
./adc1
sleep 1
done
tshwctl --clrdio=65
Wenn ich Strg+C drücke, bevor die Schleife beendet ist, wird Pin 65 nicht deaktiviert. (Ich kann ihn natürlich später deaktivieren.) Gibt es eine Möglichkeit, einen Prozess nach dem Drücken auszuführen Ctrl+C
? Zum Beispiel: Gibt es eine Möglichkeit, das Skript auszuführen, tshwctl --clsdio=65
bevor es beendet wird, wenn Strg+C gedrückt wird?
Antwort1
Sie können nach dem Shebang Folgendes verwenden #!/bin/bash
:
trap 'tshwctl --clsdio=65 &>/dev/null' 1 2 3 15
oder Sie können --clsdio
das Skript unten entfernen und Folgendes verwenden:
trap 'tshwctl --clsdio=65 &>/dev/null' EXIT
EXIT
um den Befehl in allen Anwendungsfällen auszuführen