免费注册 查看新帖 |

Chinaunix

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

求助,全局变量居然赋值无效?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-18 19:50 |只看该作者 |倒序浏览
下面的代码中那三个全局变量的值总是0,不知道问题处在什么地方?
用法:ls -l | ls.sh


ls.sh

  1. #!/usr/bin/bash

  2. ttsize=0
  3. ttfile=0
  4. ttdir=0

  5. #parse rwx to number
  6. prp()
  7. {
  8.         #read a
  9.         result=0
  10.         if test ${1:0:1} = "r"
  11.         then
  12.                 let 'result=result+4'
  13.         fi
  14.         if test ${1:1:1} = "w"
  15.         then
  16.                 let 'result=result+2'
  17.         fi
  18.         if test ${1:2:1} = "x"
  19.         then
  20.                 let 'result=result+1'
  21.         fi
  22.         printf $result
  23. }

  24. sed -n 's/\(^[d-].\{9\}\)+\? .\+ .\+ .\+ \([0-9]\+\) .\+ .\+ .\+ \([^ ]\+\)/\1 \2 \3/p'|while read i
  25. do
  26.         prp ${i:1:3}
  27.         prp ${i:4:3}
  28.         prp ${i:7:3}
  29.         printf "\t"
  30.         if test ${i:0:1} = "d"
  31.         then
  32.                 ttfile=`expr $ttfile + 1`
  33.                 printf "dir\t"
  34.         fi
  35.         if test ${i:0:1} = "-"
  36.         then
  37.                 ttdir=`expr $ttdir + 1`
  38.                 printf "file\t"
  39.         fi
  40.         printf "\t"
  41.         echo ${i:10} | sed -n 's/\(^[0-9]\+\) \(.\+\)/\1\t\2/p'|sed 's/^0//'
  42.         echo ${i:10} | sed -n 's/\(^[0-9]\+\) .\+/\1/p'|while read filesize
  43.         do
  44.                 ttsize=`expr $ttsize + $filesize`
  45.         done
  46. done

  47. echo "Total Dir: "$ttfile
  48. echo "Total File: "$ttdir
  49. echo "Total File Size: "$ttsize
复制代码
[/code]

论坛徽章:
0
2 [报告]
发表于 2004-10-18 20:10 |只看该作者

求助,全局变量居然赋值无效??

大侠,急需您的帮助阿~~~

论坛徽章:
0
3 [报告]
发表于 2004-10-19 00:34 |只看该作者

求助,全局变量居然赋值无效??

写了这个程序

tt=3

echo "abc 123" | awk '{print $2}' | while read ttt
do
    echo $ttt
    echo $tt
    tt=`expr $ttt + $tt
    echo $tt
done

echo $ttt
echo $tt
-------------------------------
运行结果
123
3
126

3


为什么会这样?
我想把那个123取出来放到变量里面以便计算。。。该如何作呢?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-10-19 07:20 |只看该作者

求助,全局变量居然赋值无效??

參考一下:
http://bbs.chinaunix.net/forum/viewtopic.php?t=199520

記得更早之前, 本版也曾討論過 while & read 的問題,
當時結論是個 bug .
不過, 一下子我找不到那篇在哪裡, 或許花時間到精華區挖挖?

论坛徽章:
0
5 [报告]
发表于 2004-10-19 08:47 |只看该作者

求助,全局变量居然赋值无效??


  1. tt=`expr $ttt + $tt    少一个“`”
复制代码
[/code]

论坛徽章:
0
6 [报告]
发表于 2004-10-19 08:50 |只看该作者

求助,全局变量居然赋值无效??

其中后面的倒数的2。3个变量没有显示,自己看看哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP