[Sunting: Ini terlihat mirip dengan beberapa pertanyaan lain yang menanyakan cara membunuh semua proses yang muncul - semua jawaban tampaknya menggunakan pkill. Jadi inti dari pertanyaan saya mungkin: Apakah ada cara untuk menyebarkan Ctrl-C / Z ke semua proses yang dihasilkan oleh skrip?]
Saat memanggil SoX rec
dengan timeout
perintah dari coreutils (dibahas di sini ), sepertinya tidak ada cara untuk membunuhnya dengan keystroke setelah dipanggil dari dalam skrip Bash.
Contoh:
timeout 10 rec test.wav
... dapat dibunuh dengan Ctrl+ Catau Ctrl+ Zdari bash, tetapi tidak ketika dipanggil dari dalam skrip.
timeout 10 ping nowhere
... dapat dibunuh dengan Ctrl+ Catau Ctrl+ Zdari bash, dan dengan Ctrl+ Zketika dijalankan dari dalam skrip.
Saya dapat menemukan ID proses dan mematikannya seperti itu, tetapi mengapa saya tidak dapat menggunakan keystroke break standar? Dan apakah ada cara untuk menyusun skrip saya sehingga saya bisa?
timeout
pada sistem saya tetapi membunuh sleep
karya apakah itu diketik langsung pada baris perintah, bersumber, dieksekusi, atau melewati penerjemah secara eksplisit
bg
darifg
perintah. Lagi pula, apakah ada perbedaan antara contoh 1 dan 3d Anda?