shell整形计算浮点型运算

整形计算

1.$((num1+num2))

[shuqiq@shuqiq mybash]$ echo $((1+2))
3
[shuqiq@shuqiq mybash]$ echo $((1*2))
2

2.$[num1+num2]

[shuqiq@shuqiq mybash]$ echo $[1+2]
3
[shuqiq@shuqiq mybash]$ echo $[1*2]
2

3.expr num1 + num2

[shuqiq@shuqiq mybash]$ expr 1 + 1
2
[shuqiq@shuqiq mybash]$ expr 1 * 1
expr: 语法错误
[shuqiq@shuqiq mybash]$ expr 1 \* 1
1
[shuqiq@shuqiq mybash]$ 

4.let命令:和双小括号 (( )) 一样,let 命令也只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。

let b=$b+1
echo $b

 注意:对于类似let x+y这样的写法,Shell 虽然计算了 x+y 的值,但却将结果丢弃;若不想这样,可以使用let sum=x+y将 x+y 的结果保存在变量 sum 中。

let b=$1+$2
echo $b

整形比较

1.((num1=num2))

if (($1>$2))
then 
echo "1"
else echo "0"
fi

2.test num1 -eq num2

test命令的参数:

"-eq" = "="    "-ne" = "!="
"-lt" = "<"     "-le" = "<="
"-gt" = ">"     "-ge" = ">="

if test $1 -eq $2
then
echo '1'
else echo '0'
fi

3.[num1 -eq num2]

if [  $1 -eq $2 ] 
then
echo '1'
else echo '0'
fi

浮点数计算

浮点数计算需要用到bc计算器

安装bc计算器

yum -y install bc

计算

"salce=1;num1+num2" | bc
#salce:保留几位小数

浮点数比较

浮点数比较也需要用到bc计算器

if [ $(echo "$a>=$b" | bc) -eq 1 ]
then 
echo '1'
else echo '0'
fi
####或者下面这几种
if [ `echo "$a>=$b" | bc` -eq 1 ]
then
echo '1'
else echo '0'
fi
#
if ((`echo "$a>=$b" | bc` == 1))
then
echo '1'
else echo '0'
fi
#
if test `echo "$a>=$b" | bc` -eq 1 
then
echo '1'
else echo '0'
fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值