强制中断 sh 中的 for 循环

强制中断 sh 中的 for 循环

如果我在 sh 中的命令行上运行 for 循环,然后按下 control-C,它通常会取消当前正在运行的进程,因此我需要按住 ^C 直到 shell 本身捕获它并中断循环。有没有办法中断当前进程立即循环?

答案1

我知道的最简单的方式就是暂停前台作业(^Z),然后使用作业 ID 将其终止(kill %<JOB_ID>)。

例子:

[me@host]$ while [ : ]; do less /etc/motd; done   # Ctrl-C can't kill this

Ctrl在+之后z

[1]+  Stopped                 less /etc/motd

[me@host]$ kill %1
[me@host]$

[1]暂停消息开头的括号 ( ) 内的数字为您提供作业 ID。

您还可以使用该命令列出暂停作业的 ID jobs

相关内容