Try using the -u option of GNU parallel. echo "1\n2\n3" | parallel -u -IX ./handle_X.sh This runs them in parallel, without buffering the entirety of any process.