原理

#!/bin/bash
job_1 &
job_2 &
...
job_n &

wait #必须
echo "all done" #可选提示所有命令均已完成
exit

实例

#!/bin/bash

#生成5个脚本
for i in 1 2 3 4 5; do
    #赋值等号前后不可留空格
    #变量定义无需带$
    #单引号中变量不取值,直接输出
    file_name='list_'$i
    #使用$变量使用变量的值
    #可使用{}指定变量名范围,避免变量名与紧跟的字符混淆
    touch ${file_name}
    echo "#!/bin/bash" > ${file_name} #双引号内变量求值
    echo "echo start of $i" >> ${file_name}
    echo "sleep 5" >> ${file_name}
    echo "echo end of $i" >> ${file_name}
    chmod +x ${file_name}
done

#并行运行前面生成的5个脚本
for file_name in `ls list_*`; do #反引号括起来求命令行输出
    ./${file_name} &
done

wait
echo 'all done'
exit

执行效果

c721b19e90c7dab2e873020a506961ed424104ad.png

参考

Linux shell中的wait命令的使用_琴酒网络的博客-CSDN博客_shell wait命令

shell中的for循环用法详解_linux shell_脚本之家

https://www.linuxprobe.com/shell-for-while.html

linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 ) - gaomatlab - 博客园

Shell echo命令 | 菜鸟教程

shell脚本注释方法 - kaizen - 博客园

标签: none

添加新评论