[Chỉnh sửa: Điều này trông tương tự như một số câu hỏi khác hỏi làm thế nào để giết tất cả các quá trình sinh ra - tất cả các câu trả lời dường như là sử dụng pkill. Vì vậy, cốt lõi của câu hỏi của tôi có thể là: Có cách nào để truyền Ctrl-C / Z cho tất cả các quy trình được sinh ra bởi một tập lệnh không?]
Khi gọi một SoX rec
bằng timeout
lệnh từ coreutils (được thảo luận ở đây ), dường như không có cách nào để giết nó bằng tổ hợp phím một khi nó được gọi từ trong tập lệnh Bash.
Ví dụ:
timeout 10 rec test.wav
... có thể bị giết bằng Ctrl+ Choặc Ctrl+ Ztừ bash, nhưng không được gọi từ bên trong tập lệnh.
timeout 10 ping nowhere
... có thể bị giết bằng Ctrl+ Choặc Ctrl+ Ztừ bash và với Ctrl+ Zkhi nó chạy từ bên trong một tập lệnh.
Tôi có thể tìm ID tiến trình và giết nó theo cách đó, nhưng tại sao tôi không thể sử dụng tổ hợp phím tắt tiêu chuẩn? Và có cách nào để cấu trúc kịch bản của tôi để tôi có thể?
timeout
trên hệ thống của mình nhưng giết chết sleep
các công việc cho dù nó được gõ trực tiếp trên dòng lệnh, có nguồn gốc, được thực thi hoặc được chuyển qua trình thông dịch một cách rõ ràng
bg
cácfg
lệnh. Dù sao, có một sự khác biệt giữa các ví dụ 1 và 3d của bạn?