如果你想在Linux系统上运行命令,直到成功为止,有一些非常简单的方法来做到这一点不需要你重复重新键入命令或坐在屏幕前压!(重复前面的命令),直到该命令的作用。在这篇文章中,我们来看看可提供两种选择bash。
使用时!
首先,我们来看看在试图显示文件的内容一个简单的例子。这招是使用bash的而命令创建一个循环,但前言命令要与运行!符号,以便循环,直到命令成功为止。它是这样工作的。
虽然美元!猫missingfile
该!作为一个“不”的条件。阅读这条线“而无法显示指定的文件”。显示“missingfile”的内容的尝试会,如果该文件实际上是丢失或失败,如果由于某种原因,你根本就没有读取权限的文件。为了完成而命令,但是,你则需要指定要发生什么,而文件不可用。所以,在这里我们添加一些行以充实而命令。
虽然美元!猫missingfile做回声等待做missingfile睡眠10
一旦某个人或进程滴missingfile进的地方,猫missingfile命令应该成功(假设您有查看它的权限),并且而命令将在下一次检查时退出。该睡觉命令确保您不尝试很多次每秒,迅速填满你的屏幕了“等待missingfile”的消息。多久您检查应该取决于您是否想看到的文件,只要它的可用或等待一点 - 在这种情况下,长达10秒。
该回声真的不需要命令,除非你想提醒的是,你在等待该文件可供。
一旦文件是可用的,而命令将退出,你可以移动到下一个步骤 - 可能使用某种方式的文件或移动到其他一些任务,一旦你确定该文件供日后使用。
运行脚本时,也可以使用这种方法。在此命令,我们等到了邵仁枚脚本的运行成功而命令每10秒尝试。
虽然美元!./runme do sleep 10 done
注意“while !”./runme”命令相当于指定“运行脚本失败”。
直到使用
您也可以使用直到命令来完成同样的事。相反的“而不是”逻辑,你可以使用“直到它是”逻辑。这些命令将工作与上述相同的示出的那些。
$直到猫missingfile做回声等待做missingfile睡眠10
$直到./runme做睡10完成
毛圈将退出一次missingfile出现或邵仁枚脚本运行成功。
循环脚本
您也可以使用同时!或直到反复命令尝试在脚本中运行一些命令。如果你有一个脚本这取决于其他一些文件运行,你可以这样做:
#!/斌/庆典直到LS的MyScript 2>的/ dev / null的Echo等待睡眠10 DONE ./myscript
这个脚本会不断尝试,直到它可以运行指定的脚本。
请注意,这表明它在等待这个脚本显示的消息myscript出现,但它发送它的错误输出从测试到/ dev / null(也称为“位桶”),以防止脚本显示暗示的东西坏了错误。一旦myscript可用,则退出循环和脚本运行。
当然,你可能甚至不希望看到的“等待”的消息填满你的屏幕。你总是可以省略回声命令干脆,尤其是当你确信脚本最终将运行,并且它完成时会通知您。
现在看