shell脚本再执行过程中就一个进程,从头到尾

下面配置shell脚本执行过程中启动多个进程同时执行

#!/bin/bash

for ((i=1;i<=10;i++))
do
(
echo "$i"
sleep 10
) &
done
wait
echo -E "########## $SECONDS ##########"

注:

$SECONDS:是执行完脚本所用的时间

wait:是等待所有的进程执行完毕

执行结果

[root@wcy ~]# bash test.sh
1
2
3
4
5
6
7
8
9
10
########## 10 ##########

进程查看

[root@wcy ~]# ps -ef | grep test.sh
root 1764 1565 0 19:23 pts/1 00:00:00 bash test.sh
root 1765 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1766 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1767 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1770 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1772 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1773 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1774 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1776 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1777 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1778 1764 0 19:23 pts/1 00:00:00 bash test.sh
root 1786 1708 0 19:23 pts/2 00:00:00 grep test.sh
[root@wcy ~]# ps -ef | grep test.sh | grep -v grep | wc -l
11

查看同一时刻多少个sleep在跑

[root@wcy ~]# ps -ef | grep sleep | grep -v grep
root 2168 2165 0 21:59 pts/1 00:00:00 sleep 10
root 2169 2166 0 21:59 pts/1 00:00:00 sleep 10
root 2172 2167 0 21:59 pts/1 00:00:00 sleep 10
root 2174 2171 0 21:59 pts/1 00:00:00 sleep 10
root 2175 2173 0 21:59 pts/1 00:00:00 sleep 10
root 2176 2170 0 21:59 pts/1 00:00:00 sleep 10
root 2179 2177 0 21:59 pts/1 00:00:00 sleep 10
root 2181 2178 0 21:59 pts/1 00:00:00 sleep 10
root 2182 2180 0 21:59 pts/1 00:00:00 sleep 10
root 2184 2183 0 21:59 pts/1 00:00:00 sleep 10

  

[root@wcy ~]# ps -ef | grep sleep | grep -v grep  | wc -l
10

多进程的shell脚本可以用于并行执行多任务

#!/bin/bash
for ((i=1;i<=1;i++))
do
(
for ((num=1;num<=100;num++))
do
echo "task1-- $num"
sleep 1
done
) &
(
for ((ber=1;ber<=100;ber++))
do
echo "task2-- $ber"
sleep 1
done
) &
done
wait

效果,两个同时执行

[root@wcy ~]# bash duo.sh
task2-- 1
task1-- 1
task2-- 2
task1-- 2
task2-- 3
task1-- 3
task2-- 4
task1-- 4
········

脚本进程

[root@wcy ~]# ps -ef | grep duo.sh | grep -v grep
root 2221 1491 0 22:13 pts/0 00:00:00 bash duo.sh
root 2222 2221 0 22:13 pts/0 00:00:00 bash duo.sh
root 2223 2221 0 22:13 pts/0 00:00:00 bash duo.sh

同时执行的进程

[root@wcy ~]# ps -ef | grep sleep | grep -v grep
root 2357 2223 0 22:14 pts/0 00:00:00 sleep 1
root 2358 2222 0 22:14 pts/0 00:00:00 sleep 1

最新文章

  1. Get it,你离几何达人不远了!
  2. Sql 行转列问题总结
  3. spring(三)----大概是最简单的面向切面了
  4. Emmet:HTML/CSS代码快速编写神器(转)
  5. posix thread线程
  6. 最常用的动态sql语句梳理——分享给使用Mybatis的小伙伴们!
  7. Bring it on
  8. RAID级别与规范
  9. Gentoo 无线网络配置 wpa_supplicant
  10. Button背景图片有拉伸
  11. 1121: [POI2008]激光发射器SZK
  12. Struts2实现文件上传报错(一)
  13. C入门语言基础一[可移植性、涉及的三种文件、编程7个步骤、编译器、链接器]
  14. Android P Beta发布!最新版本抢先体验!
  15. input radio单选框绑定change事件
  16. python基础内容目录
  17. thinkphp5.0.7 &amp;===composer更新===&amp; thinkphp5.0.9 debug &ldquo;controller not found&rdquo;
  18. css3-文本新增属性
  19. Java 9中的 9个 新特性
  20. celery在Django中的集成使用

热门文章

  1. SQL系统函数——系统信息
  2. mysql的增量备份与全备的脚本
  3. 【BZOJ3879】SvT 后缀数组+单调栈
  4. 初识yeoman
  5. 创建Json
  6. XXE(xml外部实体注入漏洞)
  7. 修改SQL Server 数据库的编码
  8. 数值和字符串相互转换(C++ 数据类型转换技巧)
  9. python学习笔记(二)— 数据类型
  10. mysql乐观锁总结和实践(转)