我是 Bash 新手,提前道歉。
Set-up
我有一个特定的结束日期end
这取决于特定的开始日期s
和周期长度p
这样,end=s+p
.
Problem
当且仅当今天的日期早于或等于结束日期时,我想执行命令。
即:执行命令iffdate ≤ end
.
Code
s='20/09/2017'
p='1'
end=$( date -j -v +"$p"d -f "%d/%m/%Y" "$s")
if [[ date < “$end” ]];
then
echo 'ok'
fi
有两件事不应该是这样的,
-
p=1
暗示end = '21/09/2017'
< date = '26/09/2017'
,但我仍然得到ok
.
- I use
date < “$end”
但我想要date ≤ “$end”
1和2如何修正?
当您将日期格式化为YYYYMMDD
您可以简单地使用字母数字比较:
start=$(date +'%Y%m%d')
end=$(date +'%Y%m%d')
# -gt means greater than - for example.
# check `help test` to get all available operators
if [ $start -gt $end ] ; then ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)