Linux shell 中使用if判断数字大小

今天,有个需求是,根据一个数字的大小,来判断,是否需要删除文件,用shell脚本执行,我在晚上查了,有两种 if的写法,我只成功了其中一种,先上代码

 

#!/bin/bash

#主路径
path="/home/trinity/dsp-admin2.0"

#判断backups文件夹中的文件是否需要删除
num=10

#删除多少天前的文件
deleteFilenNum=10




echo "进入备份文件夹(backups)"
cd $path/backups

fileNum=`ls -l |grep "^-"|wc -l`
echo "查询文件夹中的文件数目 = $fileNum"

echo "判断文件数是否大于10"

if [ $fileNum -gt $num ] ; then
	echo "当文件数大于10,将10天前的文件删除!!!   When the number of files is more than 10, delete the files 10 days ago!!!"
	find $path/backups -mtime +$deleteFilenNum -name "*.jar" -exec rm -Rf {} \;
else
	echo "当文件数小于10,不做操作!!!  Do not operate when the number of files is less than 10!!!"
fi

 

语法 :

if [ $num1 -gt $num2 ] ; then
    echo "$num1 > $num2"
else
    echo "$num1 < $num2  或者 $num1 = $num2"
fi
 

这里还有一个知识点:

数字判断一些命令:
#-gt是大于
#-lt是小于
#-eq是等于
#-ne是不等于
#-ge是大于等于
#le是小于等于   

 

 

以下是我复制内容:

【小数及整数之前的比较】

 

示例脚本:

 

a=1.6
b=6.1
c=`echo "$a > $b" | bc`

说明:

可以使用的比较符号:

>

<

==

>=

<=

如果双引号内执行结果为真,c的值就是1,否则c的值就是0.

注意:这里一定一定要注意的是,这个比较结果就是0或1,而不是代表true或false,因而不能用于if后的条件判断!切记切记!

另,字符串的比较:

字符串中有可能有空格等,所以最好是使用双引号将字符串都括起来,例如:

 

示例脚本:

a="hello  world"
b="hello world"
if [ "$a" = "$b" ]
then
        echo "a is same as b"
else
        echo "a is different from  b"
fi

该脚本执行结果为:a is different from  b

可以看出,字符串比较时,空格也会参与比较。

 

参考文章:https://blog.csdn.net/huangjin0507/article/details/45045537

https://blog.csdn.net/weixin_41995170/article/details/83928807

转载于:https://my.oschina.net/lijindou/blog/2979129

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值