如何像 java 线程一样并行 运行 shellscript
How to run shellscript parallely like java thread
嗨,我有一个脚本 mainscript.sh
在主脚本中我有多个智利脚本。
child1.sh
child2.sh
child3.sh
rm -rf /home/bdata/batch/*
我正在 运行宁我的 mainscript.sh 这将 运行 所有子作业并行。
mainscript.sh
child1.sh &
child2.sh &
child3.sh &
rm -rf /home/bdata/batch/*
第 4 条语句 运行s 之前完成所有执行。
并行完成以上3个脚本后,有什么办法可以控制最后一行的执行吗?
这是一个解决方案:
#!/bin/bash
./child1.sh &
./child2.sh &
./child3.sh &
使用 ./
或脚本的完整路径。
如果命令被控制运算符 &
终止,则 shell
在 subshell 中在后台执行命令。 shell 确实
不等待命令完成,并且 return 状态为 0。如果要在退出脚本之前执行所有子脚本,请在末尾添加 wait
(如@Mark Setchell 所写) .
只需告诉 shell 等到 children 都死了:
child1.sh &
child2.sh &
child3.sh &
wait
rm -rf /home/bdata/batch/*
嗨,我有一个脚本 mainscript.sh 在主脚本中我有多个智利脚本。
child1.sh
child2.sh
child3.sh
rm -rf /home/bdata/batch/*
我正在 运行宁我的 mainscript.sh 这将 运行 所有子作业并行。
mainscript.sh
child1.sh &
child2.sh &
child3.sh &
rm -rf /home/bdata/batch/*
第 4 条语句 运行s 之前完成所有执行。
并行完成以上3个脚本后,有什么办法可以控制最后一行的执行吗?
这是一个解决方案:
#!/bin/bash
./child1.sh &
./child2.sh &
./child3.sh &
使用 ./
或脚本的完整路径。
如果命令被控制运算符 &
终止,则 shell
在 subshell 中在后台执行命令。 shell 确实
不等待命令完成,并且 return 状态为 0。如果要在退出脚本之前执行所有子脚本,请在末尾添加 wait
(如@Mark Setchell 所写) .
只需告诉 shell 等到 children 都死了:
child1.sh &
child2.sh &
child3.sh &
wait
rm -rf /home/bdata/batch/*