我有一个 bash 脚本做了错误的事情。所以我按下 Ctrl-C 来停止它。
现在我在终端上看到的输出是已运行的进程产生的所有输出。即使想要输出某些内容的进程已经运行/完成了它正在做的事情,Ctrl-C 也会阻止打印输出。
所以,我这样做:
for i in *; do rm -vf $i; done
我现在可以确定removed 'file'
屏幕上的所有消息都已被删除,并且没有其他消息被删除吗?
也许相关信息:我通过 ssh 在屏幕会话中工作。
答案1
本质上是的。
shell 进程捕获您的Ctrl-C
中断后,它会停止它。
但也有一些注意事项,例如在for
循环中可能有一个在后台运行的 cmd。
另外,有些命令运行得非常快,以至于您无法从 shell 获得快速响应(尤其通过远程连接!)有或者什么时候它实际上已经收到了您使用 Ctrl-C 的“中断”。