当接收到 SIGINT 时,除了循环(for 或 while)之外,bash 是否还会退出其他命令?

当接收到 SIGINT 时,除了循环(for 或 while)之外,bash 是否还会退出其他命令?

来自 bash 手册

当 Bash 收到 SIGINT 时,它会中断任何正在执行的循环。

当接收到 SIGINT 时,除了循环(for 或 while)之外,bash 是否还会退出其他命令?谢谢。

答案1

引用bash手册:

bash是交互式的时,在没有任何陷阱的情况下,它会忽略 SIGTERM(这样 kill 0就不会杀死交互式 shell),并被 SIGINT捕获和处理(以便wait内置程序是可中断的)。

是的,bash 在收到SIGINT.您可以使用wait或进行验证readread从没有换行符的大文件中可以让您有时间按CtrlC)。wait尤其需要正确处理SIGINT根据 POSIX(以及它可能遇到的所有其他信号)。

相关内容