shell 使用 &和wait 实现并发任务
实例:
顺序执行脚本
in_concurrence.sh
#!/bin/bash
echo "current date: `date`"
for i in `seq 100 110`
do
echo "sleep 1"
sleep 1
done
echo "current date: `date`"
执行结果:
current date: 2019年 6月29日 星期六 08时19分22秒 CST
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
current date: 2019年 6月29日 星期六 08时19分33秒 CST
并发执行脚本
concurrence.sh
#!/bin/bash
echo "current date: `date`"
for i in `seq 100 110`
do
{
echo "sleep 1"
sleep 1
} &
done
wait
echo "current date: `date`"
执行结果:
current date: 2019年 6月29日 星期六 08时25分02秒 CST
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
sleep 1
current date: 2019年 6月29日 星期六 08时25分03秒 CST