简介:

在 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的性能。

以上就是该记录所有内容。如果有更好的改进或执行方式,请联系进行学习分享~

最后修改:2022 年 02 月 16 日 08 : 53 AM