一尘不染

并行运行Shell脚本

linux

我有一个shell脚本

  1. 随机播放大型文本文件(600万行和6列)
  2. 根据第一列对文件进行排序
  3. 输出1000个文件

所以伪代码看起来像这样

file1.sh

#!/bin/bash
for i in $(seq 1 1000)
do

  Generating random numbers here , sorting  and outputting to file$i.txt

done

有没有一种方法可以运行此Shell脚本parallel以充分利用多核CPU?

在这一刻, 。/file1.sh按1到1000的顺序执行,非常慢。

谢谢你的帮助。


阅读 235

收藏
2020-06-02

共1个答案

一尘不染

查看bash子外壳程序,这些外壳程序可用于并行运行脚本的各个部分。

我还没有测试过,但这可能是一个开始:

#!/bin/bash
for i in $(seq 1 1000)
do
   ( Generating random numbers here , sorting  and outputting to file$i.txt ) &
   if (( $i % 10 == 0 )); then wait; fi # Limit to 10 concurrent subshells.
done
wait
2020-06-02