我有一个由一系列命令组成的文件,每行一个。例如:
./run_test_1.sh fileA
./run_test_1.sh fileB
./run_test_2.sh fileC
我想使用xargs并行运行它们。
答案 0 :(得分:1)
尝试一下:
printf "%s\0" $(cat afile) | xargs -0 -P 3 -I xxx bash -c xxx
xargs
将同时从afile
运行3个命令。
命令中的特殊字符或其选项将破坏此解决方案。
以下版本似乎是安全的,但afile
中的所有命令都按顺序执行:
printf "%s\0" "$(cat afile)" | xargs -0 -P 3 -I xxx bash -c xxx
-P 3
在这里毫无用处。