我有 4 个 shell 脚本 dog.sh、bird.sh、cow.sh 和 fox.sh。这些文件中的每一个都使用 xargs 并行执行 4 个 wgets 以 fork 一个单独的进程。现在我希望这些脚本本身能够并行执行。由于某些我不知道的可移植性原因,我不能并行使用 GNU。有没有办法用 xargs 或任何其他工具来做到这一点。
另外请问可移植性的原因是什么?
我是 shell 脚本的新手。对不起,如果我的问题看起来很神秘。
提前谢谢你们。
最佳答案
执行此操作的最简单方法是将所有四个脚本置于后台。您可以用另一个脚本“run_parallel.sh”包装它们,如下所示:
./dog.sh &
./bird.sh &
./cow.sh &
./fox.sh &
& 符号以非阻塞方式在后台调用进程,导致所有 4 个进程同时执行。
例如,这里有一个名为“one_two_three.sh”的脚本:
echo 'One'
sleep 1
echo 'Two'
sleep 1
echo 'Three'
sleep 1
echo 'Done'
和一个包装器“wrapper.sh”:
./one_two_three.sh &
./one_two_three.sh &
./one_two_three.sh &
./one_two_three.sh &
echo 'Four running at once!'
关于linux - 如何并行执行 4 个 shell 脚本,我不能使用 GNU 并行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24277780/