嵌套循环但只迭代一次

时间:2021-01-05 16:14:26

标签: bash loops nested arguments

我不知道我的标题是否清楚。我解释:

我有一个需要 3 个参数(3 个文件)的 python 脚本。我需要运行它三遍。所以,我可以分别运行 python 脚本 3 次,但我只想在嵌套循环中运行一次。

为此,我将我需要的文件放在三个数组中(对应于三个参数)。该脚本将创建一个输出目录。

就我而言,我将拥有三个输出目录。每个文件的后缀都在 array1 中,以区分它们。

我猜是这样的,但你能找到更好的练习方法吗?因为嵌套循环很不舒服(顺便说一句,python 脚本给出了很好的目录)

for i in ${array1[@]}; do
    for j in ${array2[@]}; do
        for l in ${array3[@]}; do
            python my_script.py $i $j $l
        done
    done
done

数组的内容是这些:

echo ${array1[@]}
flnc.bc1004.fq flnc.bc1005.fq flnc.bc1006.fq

echo ${array2[@]}
file_bc1004.gff file_bc1005.gff file_bc1006.gff 

echo ${array3[@]}
bc1004_stats.txt bc1005_stats.txt bc1006_stats.txt

如果我运行对应于“bc1004”的文件的脚本,它看起来像:

python my_script.py flnc.bc1004.fq file_bc1004.gff bc1004_stats.txt

我应该得到一个像 my_output_dir_bc1004

这样的输出目录

最佳

0 个答案:

没有答案