Chinaunix

标题: 大家指点一下变量赋值问题 [打印本页]

作者: wdove    时间: 2009-11-04 17:50
标题: 大家指点一下变量赋值问题
test1.txt为
a
bc
cc

b.sh:
#!/bin/bash


tmp1=0
tmp2=1
tmp3=2
i=0
for line in `cat test1.txt`
do
    i=`expr $i "+" 1`
    tmp${i}=$line
done
echo "$tmp1 $tmp2 $tmp3"


执行./b.sh

结果是:
./b.sh: line 10: tmp1=a: command not found
./b.sh: line 10: tmp2=bc: command not found
./b.sh: line 10: tmp3=cc: command not found
0 1 2

百思不得解
tmp${i}有错吗?
作者: ywlscpl    时间: 2009-11-04 17:53
eval tmp${i}=$line
作者: wdove    时间: 2009-11-04 18:00
eval 这里是变量替换吗?
作者: wdove    时间: 2009-11-04 18:04
知道了,谢谢!可以了,是变量展开
作者: baililun    时间: 2009-11-05 12:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: tessykandy    时间: 2009-11-05 19:03
可以用let
作者: 寂寞烈火    时间: 2009-11-05 19:51
原帖由 tessykandy 于 2009-11-5 19:03 发表
可以用let

这里用eval是必须的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2