Saya mencoba membuat skrip yang akan memulai banyak perintah latar belakang. Untuk setiap perintah latar belakang saya perlu mendapatkan kode kembali.
Saya telah mencoba skrip berikut:
#!/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]}
Masalah saya adalah selama loop menunggu, jika pid kedua selesai sebelum yang pertama, saya tidak akan bisa mendapatkan kode kembali.
Saya tahu bahwa saya bisa menjalankan menunggu pid1 pid2, tetapi dengan perintah ini saya tidak bisa mendapatkan kode kembali dari semua perintah.
Ada ide ?