我该如何解决不良替代?

时间:2015-11-07 20:59:41

标签: bash shell

我有loc_list0,1,2,3, 我尝试有效地进行操作并输入

b=0
while [ $b -lt 4 ]
do
     grep -c "${loc_list$b[0]}" Record$b.txt
done

它表示$ {loc_list $ b [0]}上的错误替换,但记录$ b的确定。背后的原因是什么?我是bash shell的新手,任何人都可以告诉我如何修复它而不是编写重复的代码。

谢谢你! 但是当我想使用两个varibales进行迭代时,会出现另一个问题 谢谢你,我有两个变量怎么样 b和c用作计数迭代次数 这样:

b=0
c=0
while [ $b -lt 5 ]
do
    temp_length=( "${loc_list$b[@]}" )
    while [ $c -lt ${#temp_length[@]} ]
    do
       ...
       c=$((c+1))
    done
 ...
b=$((b+1))
done

这次如何解决不良替代?

1 个答案:

答案 0 :(得分:4)

您需要使用间接参数替换。对于数组,您想要的索引将被视为名称的一部分。

name=loc_list$b[0]
grep -c "${!name}" Record$b.txt

Record$b.txt有效,因为它是一个简单的字符串连接,Record + $b + .txt。您不会尝试进一步扩展结果。