首页 > 解决方案 > bash 使用 shell 变量并行运行多次

问题描述

我有一个 bash 脚本(在 Mac 上),需要使用 3 个参数多次运行一个名为 program 的程序(比如 10 个):1 个参数文本文件(pars)和两个我想在 for 循环中更改的 shell 变量。

我似乎没有正确理解具体的引号。

#!/bin/bash

export FIRST=1.8
export STEP=0.1
export LAST=2.0
export PAR1=78

export nprocs=$( sysctl -n hw.ncpu )

for PAR2 in $(seq $FIRST $STEP $LAST);
do      
    parallel --jobs $nprocs ./program pars $PAR1 $PAR2 ::: {0..10}

    wait
done

有什么建议么?

标签: bashmacosfor-loopparallel-processing

解决方案


这可能是你想要的:

#!/bin/bash

export FIRST=1.8
export STEP=0.1
export LAST=2.0
export PAR1=78

seq $FIRST $STEP $LAST | parallel ./program pars $PAR1 {1} :::: - ::: {1..10}

推荐阅读