如何优雅地强制退出 Bash 脚本中的无限循环

如何优雅地强制退出 Bash 脚本中的无限循环

我编写了一个 bash 脚本,用于在一个简单的文件中记录键码。我将代码放在一个 while 循环中,因为我希望它连续记录。但是,如果我在终端中运行 bash 脚本,光标就会一直闪烁,表明文件确实陷入了无限循环。现在我希望能够正常退出此循环。我不知道该怎么做。Ctrl+C 不起作用。我只能关闭终端并强制退出该进程。当用户想要退出程序时,我该如何跳出 while 循环?

答案1

如果光标闪烁,则可能实际上并未处于循环中。您可能正在等待输入。尝试 Ctrl+D。如果此方法无效,则打开一个新终端,ps aux | grep command其中 command 是您编写的脚本的名称,然后终止返回的 pid。

答案2

根据建议这个答案或者这个更详细unix.stackexchange.com 上的类似问题:

  • Ctrl+Z停止作业,并将其发送到后台
  • kill %%终止“当前”或“上次停止”的作业

答案3

只是一个想法。如果你从文件中读取值,而不是无限循环,你会测试该值吗?像这样:

while [ "`cat mytestfile`" = 0 ]; do
    //your stuff here
done

echo 1 > mytestfile如果您想停止循环,您只需这样做。

相关内容