如何重复执行一条命令直至运行成功?
大家好,我是良许。
在我们的日常工作中,需要我们重复做的工作简直不能太多。比如,我们想要确认网络是否是连通的,传统的做法就是使用 ping
命令不停去测试某个地址(比如百度)。网络比较好还好说,但如果网络很差,那么就需要一直去运行 ping
命令。
作为程序员,重复性的工作怎么能忍呢?只要是重复性的工作,就有可能使用编程的方式来解决!
下面良许就介绍两种方法重复执行一条命令直至运行成功。
(PS:本文适合初学者,高手可绕道)
解决重复性的工作,自然而然会想到循环
。在 Shell 里,循环无非 3 种:for
、while
、until
。在本文里,我们使用后两种循环:while
、until
。
关于这两种循环,有编程基础的小伙伴应该是比较熟悉的了,这里再复习一下。
对于 while
循环,在循环条件是 true 的情况下,它会重复执行循环体(包含在 do ... done
结构体里),直到循环条件变成 false 。
而对于 untile
循环,刚好与 while
循环相反,在循环条件是 false 的情况下,它会重复执行循环体(包含在 do ... done
结构体里),直到循环条件变成 true 。
好了,复习完基础知识,我们再来看看如何用这两个循环实现我们的目的。
1. 使用 while 循环
还是以重复测试网络连通性为例。我们可以使用以下命令来解放我们的双手:
$ while ! ping -c 3 baidu.com ; do sleep 2 ; done ; echo succeed
相关文章