在日常工作中使用shell时,有时候命令只有满足某些条件或是某种外部事件,操作才能够成功执行,这种情况下,你可能系统重复执行命令,直至成功为止。

1、按照以下方式定义函数:

repeat()

{

  while true

  do

    $@ && return

  done

}

或者把它放入shell的rc文件,更便于使用:

repeat()

{

  while ture;

  do

$@ && return ;done

}

2、工作原理

创建了一个函数repeat,它包含了一个无限while循环,该循环执行以参数形式(通过$@访问)传入函数的命令。如果命令执行成功,则返回,进而退出循环。

3、补充内容

a、一种更快的做法

大多数现代系统中,true是作为/bin中的一个二进制文件来是实现的,这就意味着每执行一次while循环,shell就不得不生成一个进程。如果不想这样,可以使用shell内建的“:”命令,它总是会返回为0的退出码:

repeat(){while:;do $@ &&return;done}

b、增加延时

假设要用repeat()从internet上下载一个暂时不可用的文件,不过这个文件只需要等一会儿就能下载,方法如下

repeat wget c http://www.example.com/software-0.1.tar.gz

如果使用这种方式,会不断的向服务器发送命令,服务器可能会把自己拉黑,故修改repeat

repeat(){while :;do $@ && return;sleep 30;done}

转载于:https://www.cnblogs.com/gary-guo/p/6097122.html

1.15运行命令直至执行成功相关推荐

  1. shell脚本中判断上一个命令是否执行成功

    2018-12-21 shell中使用符号"$?"来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败. 结合if-else语句实现判断上一个命令是否执行成功 示例如 ...

  2. shell脚本判断上一个命令是否执行成功

    shell脚本中判断上一个命令是否执行成功 shell中使用符号"$?"来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败. 结合if-else语句实现判断上一个命 ...

  3. shell判断命令是否执行成功

    shell判断命令是否执行成功 判断上条命令是否成功 shell比较运算符 判断上条命令是否成功 #!/usr/bin/env bash# 该脚本用于演示: 判断上条命令是否成功# 上一条命令是否不等 ...

  4. python运行命令_Python执行系统命令教程

    一.背景说明 以前就感觉进步的速度和博客的数量成正比,所以很长一段时间内想不通为什么很多博客为什么到最后很少甚至不在更新了,直到最近自己也快成为断更的一员. 这段时间其实碰到和解决了挺多典型的问题,但 ...

  5. shell中返回值是1为真还是假_shell脚本中判断上一个命令是否执行成功

    SQL Server 系列文章快速导航(SWF版) 一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面 ...

  6. 批处理常用命令总结和WindowsXP下运行命令使用大全及优化

    关于批处理以及批处理常用命令的总结 [ 一.什么是批处理 ] 批处理文件图标 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为 bat . 目前 ...

  7. shell中执行某条语句失败能不能重复执行_如何重复执行一条命令直至运行成功?...

    大家好,我是良许. 在我们的日常工作中,需要我们重复做的工作简直不能太多.比如,我们想要确认网络是否是连通的,传统的做法就是使用 ping 命令不停去测试某个地址(比如百度).网络比较好还好说,但如果 ...

  8. 【cmd】windows cmd 中判断命令执行成功

    前言 win10 cmd 中判断命令执行成功 用%errorlevel%变量获取上一条命令的返回值. cmd> cd /d d: cmd> if %errorlevel% == 0 ( e ...

  9. linux c之通过popen和pclose函数创建管道执行shell 运行命令使用总结

    1.函数介绍 popen 和 pclose 函数 操作是创建一个管道链接到另一个进程,然后读其输出或向其输入端发送数据.标准 I/O 库提供了两个函数 popen 和 pclose 函数,这两个函数实 ...

最新文章

  1. 高性能 Windows C++ 通用组件 VC-Logger v2.0.3 正式发布
  2. [转]Linux环境下段错误的产生原因及调试方法小结
  3. hoj1003 Mixing Milk (哈工大)
  4. (68)zabbix windows性能计数器使用详解
  5. 程序设计语言基础-知识点
  6. python编写arcgis脚本教程_ArcGIS使用Python脚本工具
  7. ThinkPHP6项目基操(4.拦截无效请求 控制器或方法不存在)
  8. 给tomcat 配置https
  9. 咏南中间件+开发框架中秋国庆大促
  10. kali 创建php可执行文件_利用树莓派在kali环境下搭建Web环境(Apache+Php7.3+Mysql)...
  11. 详解Android源码的编译
  12. JavaSE学习--泛型
  13. 老罗Android开发视频教程 (android解析xml文件 )3集集合
  14. P40Pro鸿蒙OS刷机包,华为P40Pro+刷机包(官方系统最新固件下载10.1.0.145)
  15. java矩形面积_Java编程求矩形的面积
  16. MATLAB及app designer中函数:定义与调用
  17. 谈移动互联网开发的数据分析和决策思路
  18. 如何查看win 10 无线密码
  19. 防汛数字孪生,厦门走在元宇宙前端! | 专栏
  20. 沙盘演练工作坊-产品开发_快速演练-Java-起源

热门文章

  1. ubuntu mysql 迁移_(最新)ubuntu20.04LTS版迁移mysql8.0数据库的方法
  2. 三消也玩策略?这款游戏没那么简单——《妙连千军》
  3. 零基础学Python(第三章 基础语法)
  4. DirectX11 With Windows SDK--27 计算着色器:双调排序
  5. 《浪潮之巅》九、十章笔记
  6. DispacherServlet默认加载配置文件名
  7. (转)java并发之Executor
  8. Windows 下目录及文件向Linux同步
  9. android 获取配置文件 相对路径
  10. “63个国外优秀测试站点链接”和其他相关资料,排除了目前已失效的网站和资料链接。...