来自 bash 手册
当 Bash 收到 SIGINT 时,它会中断任何正在执行的循环。
当接收到 SIGINT 时,除了循环(for 或 while)之外,bash 是否还会退出其他命令?谢谢。
答案1
引用bash手册:
当
bash
是交互式的时,在没有任何陷阱的情况下,它会忽略SIGTERM
(这样kill 0
就不会杀死交互式 shell),并被SIGINT
捕获和处理(以便wait
内置程序是可中断的)。
是的,bash 在收到SIGINT
.您可以使用wait
或进行验证read
(read
从没有换行符的大文件中可以让您有时间按CtrlC)。wait
尤其需要正确处理SIGINT
,根据 POSIX(以及它可能遇到的所有其他信号)。