Home > Others > Execute multiple shell scripts concurrently

Execute multiple shell scripts concurrently

that seems to do exactly what you want.
    # Start the processes in parallel...  
./script1.sh 1>/dev/null 2>&1 &  pid1=$!  
./script2.sh 1>/dev/null 2>&1 &  pid2=$!  
./script3.sh 1>/dev/null 2>&1 &  pid3=$!  
./script4.sh 1>/dev/null 2>&1 &  pid4=$!    

# Wait for processes to finish...  
echo -ne "Commands sent... "  
wait $pid1  
wait $pid2  
wait $pid3  
wait $pid4  

# Do something useful with the return codes...  
if [ $err1 -eq 0 -a $err2 -eq 0 -a $err3 -eq 0 -a $err4 -eq 0 ]  
echo "pass"  
echo "fail"  fi
Note that this captures the exit status of the script and not what it outputs to stdout. There is no easy way of capturing the stdout of a script running in the background, so I would advise you to use the exit status  to return information to the calling process.
Categories: Others
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: