问题:在 shell 下有 A B C D 四个命令,需要先执行 A 再执行 B C 最后执行 D

其中, B C 耗时较多, 但是,互不干扰,可以同步执

子进程 和 wait

./A

./B &  # 设为子进程

./C &

wait

./D

wait加参数是等待某个进程结束,不加参数是等待以上所有后台进程结束

例:

主脚本:

#!/bin/bash

#

# 异步执行(wait)使用样例-父脚本

#

echo "父脚本:启动子脚本.."

./async-child &

# 通过将shell参数 $! 赋给pid变量,以记录子进程的进程ID

pid=$!

echo "父脚本:子脚本(PID=${pid})已启动"

echo "父脚本:继续执行中.."

sleep 2

echo "父脚本:暂停执行,等待子脚本执行完毕.."

wait ${pid}

echo "父脚本:子脚本已结束,父脚本继续.."

echo "父脚本:父脚本执行结束。脚本退出!"

子脚本:

#!/bin/bash

#

# 异步执行(wait)使用样例-子脚本

#

echo "子脚本:正在运行.."

sleep 5

echo "子脚本:子脚本结束。脚本退出!"

结果:

[fbap:/home/fbap/usertmp]>./async-parent.sh

父脚本:启动子脚本..

父脚本:子脚本(PID=42620)已启动

父脚本:继续执行中..

子脚本:正在运行..

父脚本:暂停执行,等待子脚本执行完毕..

子脚本:子脚本结束。脚本退出!

父脚本:子脚本已结束,父脚本继续..

父脚本:父脚本执行结束。脚本退出!

linux 脚本的异步执行,shell命令同步异步相关推荐

  1. 在Jenkins远程链接Linux系统,然后执行shell命令-亲测可用【转】

    版权声明:本文为博主原创文章,未经博主允许不得转载.部分为转载其他人的,如要使用,也请提前通知一声 https://blog.csdn.net/a136332462/article/details/7 ...

  2. linux popen 函数,Linux下使用popen()执行shell命令

    函数原型: #include "stdio.h" FILE popen( const char command, const char* mode ) 参数说明: command: ...

  3. Linux下使用popen()执行shell命令

    简单说一下popen()函数 函数定义 #include <stdio.h>FILE * popen(const char *command , const char *type ); i ...

  4. shell脚本循环执行一个linux命令,Linux中循环执行shell命令的方法

    Linux命令行,循环执行shell命令 死循环 命令格式while true ;do ; done; 可以将 command 替换为任意命令. 下面以echo "hello"; ...

  5. linux脚本里调执行命令,使用shell的-n/-x/-x执行选项调试Shell脚本

    我们在前面介绍的调试手段是通过修改shell脚本的源代码,从其输出相关的调试信息来定位错误的,那有没有不修改源代码来调试shell脚本的方法呢?有的,那就是使用shell的执行选项,下面将介绍一些常用 ...

  6. python中command是什么意思_python中command执行shell命令脚本方法

    在Python中有一个模块commands也很容易做到以上的效果. 看一下三个函数: 1). commands.getstatusoutput(cmd) 用os.popen()执行命令cmd, 然后返 ...

  7. java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例

    java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...

  8. mac运行linux命令,iOS:mac.app执行shell命令

    报错 1: 错误: /bin/bash: line 1: /Users/liuyaqiang/Desktop/GitHub/KTMRobot/auto.sh: Operation not permit ...

  9. Linux学习系列五:Shell命令脚本的基本语法

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

最新文章

  1. python手机版怎么用-如何优雅的在手机上进行Python编程
  2. 操作系统老师上课讲的那个根据I/O时间和CPU时间比例来为进程分配优先级的题目,I/O时间比例越大,则这个进程的优先级越高
  3. 关于 数据文件自增长 的一点理解
  4. poj1673 EXOCENTER OF A TRIANGLE
  5. 基于CC1310的915MHz硬件设计
  6. Encapsulate Collection(封装集合)
  7. JS 浏览器差异(IE和FF)
  8. 压力测试和负载测试区别_性能测试vs压力测试vs负载测试
  9. 图书管理系统项目开发计划书
  10. windows下ssh远程连接服务器
  11. linux修改文件权限为所有人都可以访问,Linux 笔记分享八:文件权限的设定
  12. php中大于等于的表示方法,php:判断php版本是否大于等于某个版本的方法
  13. 基于ssm+vue+elementui的的ktv点歌管理系统
  14. moss2007安装部署历程 .
  15. 小武与YOLOv3----优图代码
  16. 关于特修斯之船(转自知乎)
  17. Kali Linux实战:如何一下看出Windows计算机是否开启445危险端口?是否存在永恒之蓝漏洞?
  18. python 应用程序无法正常启动 000007b_为你解答应用程序无法正常启动00xc000007b怎么办...
  19. 发现 3 个已存在的 RPM 数据库问题, 'yum check' 输出如下 解决办法
  20. 云解析旗舰版结合U8C(本地部署)应用设置

热门文章

  1. 双电源运放全波整流电路
  2. Bump Mapping
  3. edge或谷歌浏览器打开默认是百度或其他,怎么修改成自己想要的页面
  4. PHP分布式部署代码同步Git实现
  5. 详解Java的protected访问权限
  6. python怎么实现deepcopy_python复制.deepcopy()深度解读,pythoncopydeepcopy,深入
  7. 期货反向跟单—做到最后
  8. Maui学习之路(一)--Windows窗体设置
  9. 【论文阅读】SIGMOD‘19 FITing-Tree: A Data-aware Index Structure
  10. 极客大揭秘之软件分析