[Edycja: Wygląda podobnie do niektórych innych pytań dotyczących sposobu zabicia wszystkich spawnowanych procesów - wszystkie odpowiedzi wydają się używać pkill. Więc rdzeniem mojego pytania może być: Czy istnieje sposób na propagowanie Ctrl-C / Z we wszystkich procesach spawnowanych przez skrypt?]
Podczas wywoływania SoX recza pomocą timeoutpolecenia z coreutils (omówione tutaj ), wydaje się, że nie ma sposobu na zabicie go za pomocą klawisza po wywołaniu go ze skryptu Bash.
Przykłady:
timeout 10 rec test.wav
... można zabić za pomocą Ctrl+ Club Ctrl+ Zz bash, ale nie wtedy, gdy zostanie wywołany z poziomu skryptu.
timeout 10 ping nowhere
... można zabić za pomocą Ctrl+ Club Ctrl+ Zz bash i Ctrl+, Zgdy jest uruchamiany ze skryptu.
Mogę znaleźć identyfikator procesu i zabić go w ten sposób, ale dlaczego nie mogę użyć standardowego naciśnięcia klawisza break? Czy jest jakiś sposób na ustrukturyzowanie mojego skryptu, aby mógł?
timeoutw swoim systemie, ale zabijanie sleepdziała bez względu na to, czy jest wpisywane bezpośrednio w wierszu polecenia, pozyskiwane, wykonywane lub przekazywane jawnie przez tłumacza
bgzfgpoleceniami. W każdym razie, czy jest jakaś różnica między twoim 1. a 3d przykładem?