Bash

收到 SIGINT 時,bash 是否還會退出除循環(for 或 while)之外的其他命令?

  • May 28, 2018

來自 bash 手冊

當 Bash 收到一個 SIGINT 時,它會跳出任何正在執行的循環。

收到 SIGINT 時,bash 是否還會退出除循環(for 或 while)之外的其他命令?謝謝。

引用 bash 手冊:

bash是互動式的,在沒有任何陷阱的情況下,它會忽略 SIGTERM(這樣 kill 0不會殺死互動式外殼),並被 SIGINT擷取和處理(這樣wait內置函式是可中斷的)。

是的,bash 在收到SIGINT. wait您可以使用or read(read從沒有換行符的大文件中驗證是否可以讓您有時間按下Ctrl``C)。特別需要根據 POSIX正確wait處理(以及它可能遇到的所有其他信號)。SIGINT

引用自:https://unix.stackexchange.com/questions/446378