[Bearbeiten: Dies sieht ähnlich aus wie einige andere Fragen, bei denen gefragt wird, wie alle erzeugten Prozesse beendet werden sollen. Die Antworten scheinen alle darin zu bestehen, pkill zu verwenden. Der Kern meiner Frage könnte also sein: Gibt es eine Möglichkeit, Strg-C / Z auf alle Prozesse zu übertragen, die von einem Skript erzeugt werden?]
Wenn Sie ein SoX rec
mit dem timeout
Befehl von coreutils ( hier beschrieben ) aufrufen , scheint es keine Möglichkeit zu geben, es mit einem Tastendruck zu beenden, sobald es aus einem Bash-Skript heraus aufgerufen wurde.
Beispiele:
timeout 10 rec test.wav
... kann mit Ctrl+ Coder Ctrl+ Zvon bash getötet werden, aber nicht, wenn es aus einem Skript heraus aufgerufen wurde.
timeout 10 ping nowhere
... kann mit Ctrl+ Coder Ctrl+ Zvon bash und mit Ctrl+ getötet werden, Zwenn es aus einem Skript heraus ausgeführt wird.
Ich kann die Prozess-ID finden und auf diese Weise beenden, aber warum kann ich keinen Standard-Unterbrechungstastenanschlag verwenden? Und gibt es eine Möglichkeit, mein Skript so zu strukturieren, dass ich es kann?
timeout
auf meinem System, aber das Töten sleep
funktioniert, unabhängig davon, ob es direkt in der Befehlszeile eingegeben, bezogen, ausgeführt oder explizit durch den Interpreter geleitet wird
bg
offg
eingeben. Gibt es einen Unterschied zwischen Ihrem 1. und 3. Beispiel?