为循环内部分配变量 [英] Assign variables inside for loops

查看:173
本文介绍了为循环内部分配变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试着为((i = 0; i <2; i ++))的小代码是

 做p $ i = \\pra $ i \;完成

期望的输出是:
变量必须被赋值

  p0 =pra0
p1 =pra1

但是bash将这个命令作为命令获得输出结果是

pre $ = code> p0 =pra0 :command not found
p1 =pra1:找不到命令

谢谢

解决方案使用 eval 可以根据需要评估和存储值: $ b

 做eval p $ i = \\pra $ i \;完成
$ echo $ p1
pra1






或者更好地用 declare $ echo $ p1
pra1


I am trying a small code which is

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

expected output is: Variable must be assigned

p0="pra0"
p1="pra1"

But bash is taking that as command and am getting output as

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

Thanks

Use eval to have the value evaluated and stored as you want:

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


Or better with declare (thanks chepner as always!):

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

这篇关于为循环内部分配变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆