这个东东整了我大半天的时间。。。
因为前面的代码算出一个TotalTime的结果是个科学计数法1.23456e+08这样的东东,在windows的MKS下只要简单的用
AverageTime=`expr $TotalTime / $total_num`
就ok了。
搬到UNIX服务器下跑就报expr expect a integer
开始是以为分子必须为整数,就搜出来一个方法,用bc控制分子的精度
AverageTime=`echo "scale=0;$TotalTime/$total_num"|bc' //这个对于分子是小数点的情况还是好使的:)
这个方法在UNIX命令行直接跑能赋值,但是echo $AverageTime就会报Syntex Error in line1,
代入数字,一行行跑:
AverageTime=`echo "scale=2;$2.5/$2"|bc'
echo $AverageTime
能得出1
然后找Jason帮我调了调,到代人
AverageTime=`echo "scale=1.23456e+08;$2.5/$2"|bc'
同样报出Syntex Error in line1,
最后一顿狂搜,快下班的时候终于让我找到打印命令,开始用%d,说无法转换,想起来以前C的时候也用一样的格式符,就试了%.0f,搞定~
AverageTime=`expr $TotalTime / $total_num`
没有评论:
发表评论