返回顶部
首页 > 资讯 > 精选 >在Shell里怎么重复执行一条命令直到运行成功
  • 892
分享到

在Shell里怎么重复执行一条命令直到运行成功

2023-06-03 16:06:45 892人浏览 泡泡鱼
摘要

这篇文章主要讲解了“在shell里怎么重复执行一条命令直到运行成功”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Shell里怎么重复执行一条命令直到运行成功”吧!解决重复性的工作,自然而然

这篇文章主要讲解了“在shell里怎么重复执行一条命令直到运行成功”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Shell里怎么重复执行一条命令直到运行成功”吧!

解决重复性的工作,自然而然会想到循环 。在 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

对于这条命令,它将重复执行 ping 命令,如果不成功,则 sleep 2 秒之后继续尝试,直到成功。成功之后,将在终端打印 succeed 字样。

简单介绍:

我们将这个命令分解开,然后简要介绍各个模块的作用。

$ while ! ping -c 3 baidu.com ;

这是循环条件,我们的要求是「当 ping 命令执行失败时,执行循环体」,所以我们要在 ping 之前加一个 ! 。

$ do sleep 2 ; done ;

这部分就是循环体。当循环条件成立时,就进入到循环体。为了不让这个程序抢占太多资源,我们在循环体里睡眠 2 秒。一旦循环条件不成立时,就跳出循环体。

$ echo succeed ;

这部分是跳出循环体之后执行的语句,仅仅是打印一个 succeed 字样,当然你要做其它事也可以。

在Shell里怎么重复执行一条命令直到运行成功

2. 使用 until 循环

我们使用 until 循环来完成同样的事情,它的写法如下:

$ until ping -c 3 baidu.com ; do sleep 2 ; done ; echo succeed

实现的效果与上面无异,所不同的是,当循环条件为真时,退出循环。

我们也来简单拆解一下。

$ until ping -c 3 baidu.com ;

这部分是循环条件,它将执行 ping 命令,执行结果作为判断依据。直到 ping 命令执行成功时,才退出循环。

$ do sleep 2 ;

循环体,睡眠 2 秒。

$ echo succeed

成功后做的事情。

在Shell里怎么重复执行一条命令直到运行成功

3. 重复执行上个命令直到成功

这里再额外拓展一下,如何重复执行上个命令直到成功?

我们知道,想要重复运行上次的命令,可以使用这个命令:

$ !!

那如何判断上个命令执行是否成功呢?我们可以通过判断 $? 的值是否为 0 来确定。

# while 循环写法
$ !!; while [ $? -ne 0 ]; do !!; done

# until 循环写法
$ until !!; do :; done

感谢各位的阅读,以上就是“在Shell里怎么重复执行一条命令直到运行成功”的内容了,经过本文的学习后,相信大家对在Shell里怎么重复执行一条命令直到运行成功这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 在Shell里怎么重复执行一条命令直到运行成功

本文链接: https://lsjlt.com/news/234974.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在Shell里怎么重复执行一条命令直到运行成功
    这篇文章主要讲解了“在Shell里怎么重复执行一条命令直到运行成功”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Shell里怎么重复执行一条命令直到运行成功”吧!解决重复性的工作,自然而然...
    99+
    2023-06-03
  • linux中如何重复执行一条命令直至运行成功
    这篇文章主要介绍linux中如何重复执行一条命令直至运行成功,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!解决重复性的工作,自然而然会想到循环 。在 Shell 里,循环无非 3 种:for、while、until ...
    99+
    2023-06-16
  • shell怎么判断命令是否执行成功
    在shell中,可以使用特殊变量$来获得上一个命令的退出状态码。一般情况下,退出状态码为0表示命令执行成功,非0表示命令执行失败。例...
    99+
    2023-08-12
    shell
  • shell命令怎么在docker中执行
    这篇文章将为大家详细讲解有关shell命令怎么在docker中执行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在docker中执行shell命令,需要在命令前增加sh -c,例如:dock...
    99+
    2023-06-14
  • 怎么在Linux系统中重复执行命令
    今天就跟大家聊聊有关怎么在Linux系统中重复执行命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。普通的重复执行命令实际操操作过程中,经常会遇到重复执行同一命令,以观察其结果变化的...
    99+
    2023-06-13
  • java执行linux命令不成功怎么解决
    如果Java执行Linux命令不成功,可能是由于以下几个原因:1. 权限问题:确保Java程序运行的用户具有执行该命令所需的权限。可...
    99+
    2023-09-15
    java linux
  • 怎么在shell脚本中执行hive和sqoop命令
    这篇文章将为大家详细讲解有关怎么在shell脚本中执行hive和sqoop命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、test.sh脚本内容如下:#!/bin/bash#CURR_...
    99+
    2023-06-09
  • PHP数据库怎么一次执行多条SQL命令
    本篇内容主要讲解“PHP数据库怎么一次执行多条SQL命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP数据库怎么一次执行多条SQL命令”吧!在上篇文章中我们给大家介绍了获取SQL的查询结果...
    99+
    2023-06-25
  • 怎么在Shell脚本中跟踪调试命令的执行
    这篇文章主要介绍怎么在Shell脚本中跟踪调试命令的执行,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本系列的前面部分清晰地阐明了另外两种 shell 脚本调试模式:详细模式和语法检查模式,并用易于理解的例子展示了如...
    99+
    2023-06-16
  • 怎么在 linux命令行中输出一个进度条
    怎么在 linux命令行中输出一个进度条?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码如下:<php for ($i = ...
    99+
    2023-06-13
  • 怎么在linux 命令行中输出一个进度条
    本篇文章给大家分享的是有关怎么在linux 命令行中输出一个进度条,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是Linux系统Linux是一种免费使用和自由传播的类UNI...
    99+
    2023-06-07
  • 怎么用日志记录Linux用户执行的每一条命令
    本篇内容主要讲解“怎么用日志记录Linux用户执行的每一条命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用日志记录Linux用户执行的每一条命令”吧!工作中,需要把用户执行的每一个命令都...
    99+
    2023-06-16
  • linux怎么在重启或启动时执行命令或脚本
    这篇文章主要为大家展示了“linux怎么在重启或启动时执行命令或脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux怎么在重启或启动时执行命令或脚本”这篇文章吧。方法 1:如何使用 /e...
    99+
    2023-06-16
  • 怎么在Linux中查找一个命令或进程的执行时间
    这篇文章主要讲解了“怎么在Linux中查找一个命令或进程的执行时间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux中查找一个命令或进程的执行时间”吧!在 Linux 中查找一个...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作