# Created on savesnippets.com ยท https://savesnippets.com/x93jM6e6LhYFva # Fire 3 downloads in parallel curl -sO https://example.com/a.zip & pid1=$! curl -sO https://example.com/b.zip & pid2=$! curl -sO https://example.com/c.zip & pid3=$! # Wait for all wait "$pid1" "$pid2" "$pid3" # Or wait + capture each exit code declare -A status for pid in "$pid1" "$pid2" "$pid3"; do wait "$pid" status[$pid]=$? done for pid in "${!status[@]}"; do echo "pid $pid exited ${status[$pid]}" done