从bash中的连接变量定义数组

时间:2014-03-13 23:54:24

标签: arrays bash variables concatenation

在我下面发布的代码之外,我定义了一个数组fanrp0 [1]和fanrp0 [2]我为粉丝0到3做了同样的事情。我正在尝试进行fstat更改并回显两个数组中的每个粉丝

    for (( f=1; f<=2; f++ ))
     do
       for (( f2=0; f2<=3; f2++ ))
        do
          fstat="${(fanrp$f2)[$f]}"
          echo $fstat
        done
     done

1 个答案:

答案 0 :(得分:3)

如果fanrp0fanrp1fanrp2fanrp3都是数组,则可以将循环编写为

for (( f=1; f<=2; f++ ))
do
  for (( f2=0; f2<=3; f2++ ))
  do
    x="fanrp$f2[$f]"
    fstat="${!x}"
    echo $fstat
  done
done

由于f2仅用于生成数组名称,因此语法稍微清晰一点

for f in {1..2}; do
  for arr in fanrp{0..3}; do
    x="$arr[$f]"
    fstat=${!x}
    echo $fstat
  done
done
相关问题