今天,有个需求是,根据一个数字的大小,来判断,是否需要删除文件,用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是小于等于
以下是我复制内容:
【小数及整数之前的比较】
示例脚本:
|
说明:
可以使用的比较符号:
>
<
==
>=
<=
如果双引号内执行结果为真,c的值就是1,否则c的值就是0.
注意:这里一定一定要注意的是,这个比较结果就是0或1,而不是代表true或false,因而不能用于if后的条件判断!切记切记!
另,字符串的比较:
字符串中有可能有空格等,所以最好是使用双引号将字符串都括起来,例如:
示例脚本:
|
该脚本执行结果为:a is different from b
可以看出,字符串比较时,空格也会参与比较。
参考文章:https://blog.csdn.net/huangjin0507/article/details/45045537
https://blog.csdn.net/weixin_41995170/article/details/83928807