在for循环中分配变量

时间:2014-02-26 09:25:47

标签: bash shell for-loop

我正在尝试一个小代码

for(( i =0;i<2;i++ )); do p$i=\"pra$i\"; done

预期产量为: 必须指定变量

p0="pra0"
p1="pra1"

但是bash将其作为命令并以输出为

p0="pra0": command not found
p1="pra1": command not found

由于

2 个答案:

答案 0 :(得分:3)

使用eval根据需要评估和存储值:

$ for(( i =0;i<2;i++ )); do eval p$i=\"pra$i\"; done
$ echo $p1
pra1

或者更好地使用declarethanks chepner一如既往!):

$ for(( i =0;i<2;i++ )); do declare "p$i=pra$i"; done
$ echo $p1
pra1

答案 1 :(得分:0)

for (( i =0;i<2;i++ )); do
  printf -v "p$i" '%s' "pra$i"
done