在我的bash shell脚本中,我想从远程计算机并行获取数据,所以我在命令之间使用了&
由于我的路径是在运行时配置的,所以我首先使用了一个变量(默认为String),
variable1="rsync -a /path/to/${runtime_parameter}_01/abc/xyz.txt"
variable2="rsync -a /path/to/${runtime_parameter}_02/def/ghi.txt"
variable3="rsync -a /path/to/${runtime_parameter}_02/mno/jkl.txt"
然后我按如下方式执行它们,
`$variable1` & `$variable2` & `$variable3`
使用单rsync
时,我会检查$?
,即退出状态是否等于0
是否成功。
除非rsync
进程完成,否则我的脚本不应继续。如何验证流程是否已完成?
答案 0 :(得分:4)
在后台生成所有作业(即使是最后一个作业)后调用wait
。它会等到它们全部完成。
如果您想从每个子进程中获取返回状态代码,请查看以下答案:https://stackoverflow.com/a/356154/4323(基本上,使用wait
,但一次只能使用一个PID。