shell 脚本如何提取整数部分
shell脚本中,是否没办法进行小数的操作?现在我设置了变量SPEED=1.3现在要得到这个数的1024倍SPEED=`expr$SPEED\*1024`echo$SPE...
shell脚本中,是否没办法进行小数的操作?现在我 设置了变量 SPEED=1.3
现在要得到这个数的1024倍
SPEED=`expr $SPEED \* 1024`
echo $SPEED
运行之后,总是会报non-numericl 的错误
如果没办法操作小数的运算,我就想提取这个变量的整数部分,然后*1024,如何操作? 展开
现在要得到这个数的1024倍
SPEED=`expr $SPEED \* 1024`
echo $SPEED
运行之后,总是会报non-numericl 的错误
如果没办法操作小数的运算,我就想提取这个变量的整数部分,然后*1024,如何操作? 展开
2个回答
展开全部
[root@localhost zhaoru]# b.sh shell.sh
1331.2
[root@localhost zhaoru]# cat shell.sh
#!/bin/bash
a=1.3
speed=`echo ${a}*1024 | bc`
echo $speed
1331.2
[root@localhost zhaoru]# cat shell.sh
#!/bin/bash
a=1.3
speed=`echo ${a}*1024 | bc`
echo $speed
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实楼上的回答没毛病,只是没说到取整的方法。
关于取整,可以用cut命令取出小数点前面的数字(字符串):
echo "1.3" | cut -f1 -d"."
或者用echo命令:
SPEED=1.3
echo ${SPEED%%.*}
或者用awk命令:
echo "1.3" | awk -F"." '{print $1}'
或者用bc命令:
echo "1.3/1" | bc
或者用sed命令:
echo "1.3" | sed "s/\..*$//"
欢迎补充、指出错误!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询