linux shell while until循环

Bash循环与日期操作
本文介绍了一段Bash脚本,该脚本利用date命令进行日期运算,并通过until循环结构实现日期范围内的迭代处理。文章详细解释了如何在Bash中比较字符串和整数,包括日期格式的处理和循环条件的设置。
#!/bin/bash
source ~/.bashrc
yesterday=`date -d"-1 day" +'%Y-%m-%d 00:00:00'`
predict_day=$yesterday
echo ”predict day:$predict_day“
predict_start_day=`date -d"-30 day $predict_day" +"%Y-%m-%d 00:00:00"`
predict_end_day=`date -d"-1 day $predict_day" +"%Y-%m-%d 00:00:00"`
until [[ "$predict_start_day" > "$predict_end_day" ]]
do
    循环体
done

注意点:

1、需要两个[[  ]]

2、中括号要和里面的判断条件留一个空格,两端都要留

3、字符串和整数判断,使用的符号不一样

 

对于整数的比较
-eq       等于,如:if [ "$a" -eq "$b" ] 
-ne       不等于,如:if [ "$a" -ne "$b" ] 
-gt       大于,如:if [ "$a" -gt "$b" ] 
-ge       大于等于,如:if [ "$a" -ge "$b" ] 
-lt       小于,如:if [ "$a" -lt "$b" ] 
-le       小于等于,如:if [ "$a" -le "$b" ] 
<       小于(需要双括号),如:(("$a" < "$b")) 
<=       小于等于(需要双括号),如:(("$a" <= "$b")) 
>       大于(需要双括号),如:(("$a" > "$b")) 
>=       大于等于(需要双括号),如:(("$a" >= "$b")) 

对于字符串的比较

=       等于,如:if [ "$a" = "$b" ] 

!=       不等于,如:if [ "$a" != "$b" ] 

<       小于,在ASCII字母顺序下

>       大于,在ASCII字母顺序下

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值