有许多方法可以在Linux上进行永久循环(或直到您决定停止),您可以在命令行或脚本中执行此操作。
的为和而命令使这项工作相当容易。关于语法和策略,只有几件事需要记住。
使用时
最简单的永久循环之一涉及使用而命令,后跟条件“true”。你不需要像而[1 -eq 1]或类似的测试。的而真正的测试意味着循环将运行,直到您停止它ctrl - c,关闭终端窗口或注销。这里有一个例子:
$ true >执行> echo继续运行>睡眠3 >完成继续运行继续运行继续运行^C
你也可以做同样的事情而:。这里的关键是:总是那么成功,就像而真正的,这个测试不会失败,循环只是继续运行。
$ while: > echo继续运行> sleep 3 >完成继续运行继续运行^C
如果在脚本中插入了一个无限循环,并希望提醒使用该循环的人如何退出该脚本,则始终可以使用回声命令:
while: do echo继续运行echo“按CTRL+C退出”睡眠1完成
使用了
的为command还提供了一种简单的永久循环方法。虽然没有那么明显而真正的,语法相当简单。你只需在一个有界循环中替换参数,这个循环通常看起来像这样“从c = 1开始,递增到5”规范:
$ for ((c=1;c < = 5;c++))
一个没有指定的任何参数:
$ (;;,))
如果没有起始值、增量或退出测试,此循环将永远运行,或者直到它被强制停止。
$ (;;“按CTRL+C退出”> sleep 2 > done done(完成)保持你的精神振作起来
为什么永远循环?
在现实生活中,你不会想要永远循环,但是运行到回家的时候,工作完成或者遇到问题,这一点都不奇怪。任何被构造成无限循环的循环也可以根据不同的环境设置为可退出。
这个脚本会一直处理数据直到下午5点,或者第一次检查下午5点后的时间。
# !/bin/bash while true if [' date +%H ' -ge 17];然后退出#退出脚本fi echo继续运行~/bin/process_data #完成一些工作
如果您想退出循环而不是退出脚本,请使用打破命令而不是退出。
# !/bin/bash while true if [' date +%H ' -ge 17];然后中断# exit loop fi echo继续运行~/bin/process_data done…在这里运行其他命令…
总结
永远循环是容易的。指定停止循环的条件需要一些额外的工作。