LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1893|回复: 7

shell中有关数值计算的问题

[复制链接]
发表于 2004-7-8 21:44:37 | 显示全部楼层 |阅读模式
比如我要把
/dev/dsk/c0t0d0s0      436000
/dev/dsk/c0t0d0s6      724779
/dev/dsk/c0t0d0s3      553803
/dev/dsk/c0t0d0s7      591530
/dev/dsk/c0t1d0s7     2037004
/dev/dsk/c0t0d0s5      924104
/dev/dsk/c0t0d0s1      113580 中的数值统计出来,然后把它和1500000相除,怎么实现?
如果要相加的数值是几个零算的值,又怎么办? 比如$s=100,$a=100,
平时用的少,没有一点经验,一下子急用,有点搞不定了,望高手指点,

统计solaris中的系统资料用

不胜感激, waiting  online . . . . :thank
发表于 2004-7-8 22:35:28 | 显示全部楼层
[php]awk '{sum+=$2}END{print sum/1500000}' file[/php]
是这样的么? :ask
 楼主| 发表于 2004-7-8 23:40:54 | 显示全部楼层
今天下午试过这样的格式,但老是报错,

非常感谢 javalee  达人,

ps : END构成的是个循环?

如果要相加的数值是几个零算的值,又怎么办? 比如$s=100,$a=100,
平时用的少,没有一点经验,一下子急用,有点搞不定了,望高手指点,

#!/bin/bash
#as.sh
a=2
b=20
s=$(expr $a / $b)
echo $s

#./as.sh
0

why ?
发表于 2004-7-8 23:54:43 | 显示全部楼层
什么叫"几个零算的值" :ask
#!/bin/bash

#!和/bin/bash间不要有空格
对变量的赋值,等号两边,也不允许有空格
如:
a = 111  #等号边有空格,错误
a=111   #等号边无空格,正确
 楼主| 发表于 2004-7-9 11:20:57 | 显示全部楼层
非常感谢达人的指点,

ps : 现在除法还是没有搞定,
发表于 2004-7-9 11:30:38 | 显示全部楼层
最初由 Jackosn.K 发表
非常感谢达人的指点,

ps : 现在除法还是没有搞定,

哦~~,expr只能进行整数运算,如果需要处理浮点数的话,可以用
bc,awk等工具,如:
/home/lee#echo "scale=2;2/20"|bc
.10
/home/lee#awk 'BEGIN{printf "%.4f\n",2/20}'
0.1000
 楼主| 发表于 2004-7-9 14:51:26 | 显示全部楼层
谢谢javalee老大的耐心指点,
 楼主| 发表于 2004-7-9 19:26:07 | 显示全部楼层
想到一个办法,除之前先乘一个值,然后结果再除一个值,有点麻烦了,哈哈。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表