shell数据比较运算
一,shell中的运算
1,数学比较运算(整型)
-eq 等于
-gt 大于
-lt 小于
-ge 大于或等于
-le 小于或等于
-ne 不等于
[root@CentOs shell]# test 1 -eq 1;echo $?
0(相等返回0)
[root@CentOs shell]# test 1 -gt 1;echo $?
1(不相等返回1)
[root@CentOs shell]#
遇到小数怎么处理?
转换为整数比较!
[root@CentOs shell]# echo "1.5*10"|bc
15.0
[root@CentOs shell]# echo "1.5*10"|bc|cut -d '.' -f1(以“.”为分隔符,打印点的前一位)
15
[root@CentOs shell]# test `echo "1.5*10"|bc|cut -d '.' -f1` -eq $((2*10));echo $?
1
[root@CentOs shell]#
或者放在脚本中执行
[root@CentOs shell]# vim ShellTest
#!/bin/bash
NUM1=`echo "1.5*10"|bc|cut -d '.' -f1`
NUM2=$((2*10))
test $NUM1 -eq $NUM2;echo $?
[root@CentOs shell]# bash ShellTest
1
[root@CentOs shell]# bash -x ShellTest (-x相当于debug)
++ echo '1.5*10'
++ bc
++ cut -d . -f1
+ NUM1=15
+ NUM2=20
+ test 15 -eq 20
+ echo 1
1
[root@CentOs shell]#