Chinaunix

标题: 求助,全局变量居然赋值无效?? [打印本页]

作者: bigfatsea    时间: 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]
作者: bigfatsea    时间: 2004-10-18 20:10
标题: 求助,全局变量居然赋值无效??
大侠,急需您的帮助阿~~~
作者: bigfatsea    时间: 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取出来放到变量里面以便计算。。。该如何作呢?
作者: 網中人    时间: 2004-10-19 07:20
标题: 求助,全局变量居然赋值无效??
參考一下:
http://bbs.chinaunix.net/forum/viewtopic.php?t=199520

記得更早之前, 本版也曾討論過 while & read 的問題,
當時結論是個 bug .
不過, 一下子我找不到那篇在哪裡, 或許花時間到精華區挖挖?
作者: 用钱的兜兜    时间: 2004-10-19 08:47
标题: 求助,全局变量居然赋值无效??

  1. tt=`expr $ttt + $tt    少一个“`”
复制代码
[/code]
作者: 用钱的兜兜    时间: 2004-10-19 08:50
标题: 求助,全局变量居然赋值无效??
其中后面的倒数的2。3个变量没有显示,自己看看哦




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