在bash中有两个变量的For循环

时间:2018-08-12 10:41:22

标签: bash for-loop

在我的脚本中,我使用了如下的for循环

for i in {1,2}; do
for j in {18,35}; do
<some_command> -o min$j.xvg -ndist 3 -xvg none -reference $i -select 0
done
done

但是如果我分解命令,它会像下面这样

<some_command> -o min18.xvg -ndist 3 -xvg none -reference 1 -select 0

<some_command> -o min35.xvg -ndist 3 -xvg none -reference 1 -select 0

当然,它也会为-reference 2做同样的事情

但是我想这样做

<some_command> -o min18.xvg -ndist 3 -xvg none -reference 1 -select 0

<some_command> -o min35.xvg -ndist 3 -xvg none -reference 2 -select 0

因此,这意味着将if i=1 it should only give j=18作为输出,但这for循环的作用类似于for i=1 do j=18,35

我想我在这里错过了非常基本的小事情。有什么技巧可以使它整洁,以便对于特定的i值,它只会选择特定的j值?

我正在使用问题Looping over pairs of values in bash

的第一个答案来尝试这种方法
for i in 1 2 do
for j in 18 35 do
<some command> -o min"${j}".xvg -ndist 3 -xvg none -reference "${i}" -select 0
done
done

它给出了类似f or j in 18 35 do'的错误

0 个答案:

没有答案