антислеш в твоем примере должно быть косой чертой, наверное
yarl@nb$ pwd /tmp yarl@nb$ cat list #!/bin/sh echo /tmp/foo echo /tmp/bar yarl@nb$ cat foo #!/bin/sh echo I say foo sleep 2 echo I say foo yarl@nb$ cat bar #!/bin/sh echo And I say bar sleep 2 echo And I say bar yarl@nb$ cat parallel #!/bin/sh ./list | while read cmd; do $cmd & done
Бежать:
./list | sh
в параллели:
./parallel
Обратите внимание, что если в списке есть n файлов, то это n заданий, которые выполняются параллельно. Если вы хотите контролировать это, используйте параллельный счетчик или GNU или что-то еще. см. https://stackoverflow.com/questions/5547787/running-shell-script-in-parallel