#### Put list of commands in array command_array[0]='<Linux_Command_1>' command_array[1]='<Linux_Command_2>' command_array[2]='<Linux_Command_3>' command_array[3]='<Linux_Command_4>' #### Array length command_array_length=${#command_array[*]} #### Iterate over array of commands & run in background. Store each process ID for (( current_command_index=0; current_command_index<$command_array_length; current_command_index++ )); do command_string=${command_array[current_command_index]} result[$current_command_index]=`$command_string > output_$current_command_index` & process_array[$current_command_index]=$! done process_array_length=${#process_array[*]} ### Iterate over process array & wait for each process to finish (Join) for (( process_index=0; process_index<process_array_length; process_index++ )); do current_process=${process_array[process_index]} wait $current_process done