有没有办法在 Linux 中循环控制台命令?

有没有办法在 Linux 中循环控制台命令?

问题:

我正在 Fedora 19 的控制台中尝试此操作(以 root 身份):

yum 安装 httpd

它返回的只是以下内容:

已加载插件:langpacks、refresh-packagekits 错误:无法检索存储库的 metalink:fedora/19/x86_64。请验证其路径并重试。

偶尔会出现此错误,但是当我遇到此错误时,它会持续一天。

我尝试过的:

yum update返回相同的错误。

这已经持续了一段时间了,基本上是我上一个问题的一个分支这里

如果我等待足够长的时间,控制台命令最终会起作用。但是有没有办法循环执行命令直到成功?

答案1

就像是

 while true; do
    yum install httpd && break
    sleep 10
 done

应该可以工作。(睡眠时间以秒为单位)。

您可以在一行中输入;如下内容:

while true; do yum install httpd && break; sleep 10; done

添加

正如 Politowski 在评论中所建议的,您也可以尝试:

 while ! yum install httpd; do sleep 10; done

它可能看起来更美观/更短/更清晰/更容易记住/理解。(我认为至少有一个 shell 无法运行它,但它在“Linux”系统上并不常见,因此几乎可以肯定您不必担心它)。

相关内容