linux脚本同时运行,shell多个脚本同时执行
1、编写多进程实验脚本 demo.sh#!/bin/bash>sub1.log;>sub2.log;>sub3.logfunction sub1{for i in {1..5}doecho `date +%T` >> sub1.log#注意date 和+号之间有空格。如:date +%m/%ddate取"月/日"的命令行。sleep 1done}function ..
1、编写多进程实验脚本 demo.sh
#!/bin/bash
>sub1.log;>sub2.log;>sub3.log
function sub1
{
for i in {1..5}
do
echo `date +%T` >> sub1.log #注意date 和+号之间有空格。如:date +%m/%ddate取"月/日"的命令行。
sleep 1
done
}
function sub2
{
for i in {1..5}
do
echo `date +%T` >> sub2.log
sleep 1
done
}
function sub3
{
for i in {1..5}
do
echo `date +%T` >> sub3.log
sleep 1
done
}
sub1
sub2
sub3
2、执行实验脚本
[root@Svr23 Mornitor]# ./demo
[root@Svr23 Mornitor]# cat sub1.log
11:11:51
11:11:52
11:11:53
11:11:54
11:11:55
[root@Svr23 Mornitor]# cat sub2.log
11:11:56
11:11:57
11:11:58
11:11:59
11:12:00
[root@Svr23 Mornitor]# cat sub3.log
11:12:01
11:12:02
11:12:03
11:12:04
11:12:05
发现三个sub子函数是依次执行,总共需要15s
3、调整修改一下脚本,将sub子函数加入到后台执行。
[root@Svr23 Mornitor]# vi demo.sh
..........
sub1&
sub2&
sub3&
再次执行实验脚本
[root@Svr23 Mornitor]# ./demo
[root@Svr23 Mornitor]# cat sub1.log
11:12:24
11:12:25
11:12:26
11:12:27
11:12:28
[root@Svr23 Mornitor]# cat sub2.log
11:12:24
11:12:25
11:12:26
11:12:27
11:12:28
[root@Svr23 Mornitor]# cat sub3.log
11:12:24
11:12:25
11:12:26
11:12:27
11:12:28
发现三个sub子函数是并行执行,总共需要5s,速度大大提高
分析:shell是fork()+exec()来处理子命令,3个进程并发执行.主shell退出后,三个进程都会被init收养.
更多推荐
所有评论(0)