如何重复Linux命令直到成功

您可以很容易地设置一个Linux命令,一直尝试直到成功。让我们看看如何循环你的成功之路。

思想库

如果您想在Linux系统上运行一个命令,直到它成功,有一些非常简单的方法可以做到这一点,不需要您重复地重新键入该命令,也不需要坐在屏幕前按!!(重复上一个命令)直到命令生效。在这篇文章中,我们将讨论猛击.

使用while!

首先,我们将看一个简单的例子,试图显示文件的内容。这个诀窍是用猛击虽然命令来创建循环,但在要用!签名使其循环直到命令成功。这就是它的工作原理。

一掷千金!cat丢失文件

这个!作为“不”条件。将此行读作“无法显示指定文件时”。如果文件确实丢失,或者由于某种原因,您根本没有对该文件的读取权限,则显示“missing file”内容的尝试将失败。完成虽然但是,您需要指定当文件不可用时应发生的情况。所以,我们在这里添加一些线条来充实虽然命令。

一掷千金!cat missingfile do echo等待missingfile睡眠10完成

一旦有人或进程失败丢失文件到位了cat丢失文件命令应该成功(假设您有权查看它),并且虽然命令将在下次检查时退出。这个睡觉命令确保您不会每秒钟尝试多次,快速地在屏幕上填充“等待丢失文件”消息。检查的频率应取决于是否希望在文件可用时立即查看该文件,或等待一段时间(在本例中,最长为10秒)。

这个回声不需要命令,除非需要提醒您正在等待文件可用。

一旦文件可用虽然命令将退出,您可以继续下一步-可能以某种方式使用该文件,或者在确定该文件可供以后使用后继续执行其他任务。

运行脚本时也可以使用此方法。在这个命令中,我们要等到runme公司脚本成功运行虽然命令每10秒尝试一次。

$while。/runme do sleep 10完成

注意“while!”。/runme“命令相当于指定“运行脚本失败时”。

使用截止日期

您也可以使用直到命令完成同样的事情。不是“while not”逻辑,而是使用“until it is”逻辑。这些命令的工作原理与上面所示相同。

$until cat missingfile do echo等待missingfile睡眠10完成
$until./runme睡眠10完成

循环将退出一次丢失文件出现或runme公司脚本已成功运行。

脚本中的循环

您也可以使用一会儿!直到命令以重复尝试在脚本中运行某些命令。如果有依赖于其他文件运行的脚本,可以执行以下操作:

#!/bin/bash直到ls myscript 2>/dev/null echo等待睡眠10完成/myscript

脚本将继续尝试,直到它可以运行指定的脚本。

注意,这个脚本显示了它正在等待的消息我的脚本显示,但它将其错误输出从测试发送到/dev/空(也称为“位存储桶”)以防止脚本显示错误,提示某些内容已损坏。一次我的脚本可用,循环退出并运行脚本。

当然,你可能甚至不想看到“等待”信息填满你的屏幕。你总是可以忽略回声命令,尤其是当您确信脚本最终将运行并且脚本完成时将通知您时。

现在看看

加入网络世界社区足球竞猜app软件脸谱网领英评论那些最重要的话题。
相关:

版权所有©2020足球竞彩网下载

IT薪资调查:结果是