如果我在 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
。