如何从shell脚本执行以下操作(一次运行多个命令并等待它们)?
我想编写一个shell脚本,执行一些命令并等待它们全部终止 我想我要做的就是使用如何从shell脚本执行以下操作(一次运行多个命令并等待它们)?,shell,Shell,我想编写一个shell脚本,执行一些命令并等待它们全部终止 我想我要做的就是使用 cmd1 & cmd2 & cmd3 & .... 等等 但我不知道的是如何等待它们终止 有什么想法吗?这个问题回答了你的问题。:) 通过调用wait命令,您只需等待所有正在运行的作业 这个问题有你问题的答案。:) 通过调用wait命令,您只需等待所有正在运行的作业 只需使用wait命令,无需任何参数: cmd1 & cmd2 &am
cmd1 &
cmd2 &
cmd3 &
....
等等
但我不知道的是如何等待它们终止
有什么想法吗?这个问题回答了你的问题。:) 通过调用
wait
命令,您只需等待所有正在运行的作业
这个问题有你问题的答案。:) 通过调用
wait
命令,您只需等待所有正在运行的作业
只需使用
wait
命令,无需任何参数:
cmd1 &
cmd2 &
cmd3 &
wait
这将使bash等待所有未完成的子项。只要您没有其他需要继续执行的后台任务,这项功能就可以正常工作。只需使用
wait
命令,不带任何参数:
cmd1 &
cmd2 &
cmd3 &
wait
这将使bash等待所有未完成的子项。只要您没有其他需要继续执行的后台任务,此示例就可以运行。此示例似乎可以运行
[stou$ ~]$ (sleep 1 ; echo 1) & (sleep 4 ; echo 4) & (sleep 3 ; echo 3)& wait; echo done
[1] 13651
[2] 13652
[3] 13653
1
[1] Done ( sleep 1; echo 1 )
3
4
[2]- Done ( sleep 4; echo 4 )
[3]+ Done ( sleep 3; echo 3 )
done
[stou$ ~]$
这个例子似乎有效
[stou$ ~]$ (sleep 1 ; echo 1) & (sleep 4 ; echo 4) & (sleep 3 ; echo 3)& wait; echo done
[1] 13651
[2] 13652
[3] 13653
1
[1] Done ( sleep 1; echo 1 )
3
4
[2]- Done ( sleep 4; echo 4 )
[3]+ Done ( sleep 3; echo 3 )
done
[stou$ ~]$
“;”对我来说不起作用,因为我想让它们在后台一起运行。有点像分叉并等待所有分叉的进程终止。”;“对我来说不起作用,因为我希望它们在后台一起运行。有点像分叉并等待所有分叉的进程终止。