简介:
在 shell 中使用 wait 是在等待上一批或上一个脚本执行完(即上一个的进程终止),再执行wait之后的命令。
wait 5 等待5进程完在执行下面的
wait %1 第一个作业
如果wait后面不带任何的进程号或作业号,那么wait会直至当前shell中进程的所有子进程都执行结束后,才继续执行下一步。
主要内容:
最近写一个脚本执行命令时发现,要对该功能执行操作全部完成会耗费大量时间,并且CPU占用也非常少,为了节省时间,加入wait命令后效率提升百倍,当然,缺陷就是CPU资源吃的死死的。
shell普通for循环示例代码如下:
#!/bin/bash
a=100
function_test(){
for ((i=1;i<=$a;i++))
do
{
curl -s https://www.baidu.com /该命令是用来测试的命令,此处为实际执行的命令
echo "执行次数$i"
}
done
}
function_test
上面这条功能执行一百次,需要的时间大概在1分钟以上。
添加wait命令实现脚本多线程执行代码示例如下:
#!/bin/bash
a=100
function_test(){
for ((i=1;i<=$a;i++))
do
{
curl -s https://www.baidu.com /该命令是用来测试的命令,此处为实际执行的命令
echo "执行次数$i"
} &
done
wait /此时,等待100个后台任务全都执行完成之后,再继续执行执行脚本
}
function_test
执行一百次完成时间2秒左右,这个也得看CPU的性能。
以上就是该记录所有内容。如果有更好的改进或执行方式,请联系进行学习分享~