免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1902 | 回复: 5
打印 上一主题 下一主题

sed中变量引用错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-07 13:31 |只看该作者 |倒序浏览
我写了一个简单的shell script,目的是想对下面的文件进行资料处理:

文件内容如下:

name   item    sum
A          aaa     100
B          bbb      100
C          ccc       100

Script如下:

#Calculate the rows
declare -i ROW=`cat $DIR/reim |wc -l`

#把每个人的项目和金额列出来,并通过邮件通知给每个人。
for ((i=2;i<=$ROW;i=i+1))
do
   NAME=`cat $DIR/reim | awk '{print $1}' | sed -n '$ip'`
   ITEM=`cat $DIR/reim | awk '{print $2}' | sed -n '$ip'`
   SUM=`cat $DIR/reim | awk '{print $3}' | sed -n '$ip'`
   date|(cat <<EOF
   Dear $NAME,
   $ITEM
   $SUM

   Account Manager

EOF
cat)| mail -s "test" test@test.com
done

我在用sh -x 调试此script时,发现NAME,ITEM,SUM变量的值都是p,并没有能够赋给正确的值。

我发现问题主要出在“sed -n '$ip'”,其中$i好像没有被正确替换成数字。

请大家帮帮忙。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-09-07 13:40 |只看该作者
引号问题,看十三问

论坛徽章:
0
3 [报告]
发表于 2006-09-07 13:47 |只看该作者
sed后面应该用双引号,

论坛徽章:
0
4 [报告]
发表于 2006-09-07 14:07 |只看该作者
我将 sed -n '$ip'改为sed -n "$ip"之后,再用sh -x进行调试,发现NAME/ITEM/SUM三个变量值都是空的,难道还有其它地方有问题吗?

调试信息如下:

++ cat /home/reim
++ awk '{print $1}'
++ sed -n ''
+ NAME=
++ cat /home/reim
++ awk '{print $2}'
++ sed -n ''
+ ITEM=
++ cat /home/reim
++ awk '{print $3}'
++ sed -n ''
+ SUM=

寂寞烈火能否再指点一下。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2006-09-07 14:44 |只看该作者
sed -n "$i"p
or
sed -n "${i}p"

论坛徽章:
0
6 [报告]
发表于 2006-09-07 15:11 |只看该作者
多谢法王指点。

虽然我也仔细看了十三问,但是还是很多东西没有理解,要多实践才能弄明白。

我还看了你的Blog,感觉你挺忧郁的,但文章写得不错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP