bbs.ChinaUnix.net
首页 | 微博 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


请教循环赋值问题


  首页 » 论坛 » Shell »
[打印] [收藏] [本帖文本页] [推荐此主题给朋友]

for i in 1 2 3
do
     a$i=1
     echo "${a$i}"
done

我想得到的结果是将a1,a2,a3都赋值为1,然后再显示出来,以上的写法有问题的,请教如何更正?



  1. for i in 1 2 3
  2. do
  3.   eval "a${i}=1"
  4.   eval "echo \$a${i}"
  5. done
复制代码



非常的感谢啊,eval没用过,呵呵



能否解释下eval 呢?
:mrgreen:





QUOTE:
原帖由 honckly 于 2007-10-7 21:59 发表
能否解释下eval 呢?
:mrgreen:


简单的说就是把字串当命令来执行
__________________________________
88,cu...



eval 将其参数作为当前 shell 的 input 交给 shell 去执行. 俺见过的大多数 (全部?) scripting languages 都支持 eval 命令/函数, 这也是 script 区别于像 c 这种高级语言的主要特点之一, script 可以动态的生成并执行指令

一家之言, just FYI :-)
__________________________________
◆ 欢迎访问 Linux 伊甸园 论坛



不用eval:

for i in 1 2 3
do
  let a$i=1
  echo "$a${i}"
done





QUOTE:
原帖由 rdcwayx 于 2007-10-9 08:20 发表
不用eval:

for i in 1 2 3
do
  let a$i=1
  echo "$a${i}"
done


嗯, 不错, 不过 let 只能用于 arithmetic expression 的吧
__________________________________
◆ 欢迎访问 Linux 伊甸园 论坛


  首页 » 论坛 » Shell »
Copyright © 2001-2010 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP