[root@node01 server]# cat parallel.sh
#!/bin/bash
beginTime=date +%s
num=1
for i in seq 1 3
do
{
echo $i “业务逻辑 开始执行,当前时间:” date "+%Y-%m-%d %H:%M:%S"
sleep 2s
echo $i “业务逻辑 执行完成,当前时间:” date "+%Y-%m-%d %H:%M:%S"
echo “-----------------------------------------------------------”
# 结尾的&确保每个进程后台执行
} &
done
wait关键字确保每一个子进程都执行完成
wait
endTime=date +%s
echo “总共耗时:”
(
(
((
((endTime-$beginTime)) “秒”
3、一串的命令执行()和{}
()和{}都是对一串的命令进行执行,但有所区别:
相同点:
()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
不同点
()只是对一串命令重新开一个子shell进行执行,{}对一串命令在当前shell执行
()最后一个命令可以不用分号,{}最后一个命令要用分号
()里的第一个命令和左边括号不必有空格,{}的第一个命令和左括号之间必须要有一个空格
()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令