在 bash 中访问不同的变量组合

在 bash 中访问不同的变量组合

我是该小组的新人,因此请为任何错误或表述不当的问题道歉。这是我的问题。我有一些变量数组。我想同时开始具有所有可能组合的不同工作(例如不同的任务)。我不知道该怎么做,就是按顺序访问所有可能的变量组合。

这是一个测试 bash 脚本,它仅在每次迭代时打印出变量集。这对我来说看起来不太好,因为它打印的内容比我预期的要多得多。由于我有 3 个包含 2,3 和 4 个变量的数组,因此我总共需要 2 * 3 * 4 = 24 个任务。有人可以解释我做错了什么,或者是否有更好更干净的方法?

这是一个小例子:

#!/bin/bash
#$ -N combi_test
#$ -t 1-24

ACQ=('ei')
VAR=('sh' 'rbf')
TRAIN=(1000 2000 3000)
ANGLES=(10 20 30 40)


for i in "${!ANGLES[@]}"; do
    for j  in "${!VAR[@]}"; do
        for k  in "${!TRAIN[@]}"; do
            echo "IS_${ACQ}_tr${TRAIN[k]}_${ANGLES[i]}_${VAR[j]}.h5"
        done
    done
done

预先非常感谢!

答案1

尝试:

parallel echo "IS_${ACQ}_tr{3}_{1}_{2}.h5" ::: "${ANGLES[@]}" ::: "${VAR[@]}" ::: "${TRAIN[@]}"

相关内容