많은 백그라운드 명령을 시작하는 스크립트를 만들려고합니다. 각 백그라운드 명령마다 반환 코드를 가져와야합니다.
나는 다음 스크립트를 시도했다 :
#!/bin/bash
set -x
pid=()
return=()
for i in 1 2
do
echo start $i
ssh mysql "/root/test$i.sh" &
pid[$i]=$!
done
for i in ${#pid[@]}
do
echo ${pid[$i]}
wait ${pid[$i]}
return[$i]=$?
if [ ${return[$i]} -ne 0 ]
then
echo mail error
fi
done
echo ${return[1]}
echo ${return[2]}
내 문제는 대기 루프 중입니다. 첫 번째 문제 전에 두 번째 pid가 완료되면 반환 코드를 얻을 수 없습니다.
wait pid1 pid2를 실행할 수 있다는 것을 알고 있지만이 명령으로 모든 명령의 리턴 코드를 얻을 수는 없습니다.
어떤 아이디어?