我是 Bash 的新手,提前道歉。
设置
我有一个特定的结束日期end,这取决于特定的开始日期s和周期长度,p例如,end=s+p.
问题
当且仅当今天的日期早于或等于结束日期时,我想执行命令。
即:执行命令 iff date ? end。
代码
s='20/09/2017'
p='1'
end=$( date -j -v +"$p"d -f "%d/%m/%Y" "$s")
if [[ date < “$end” ]];
then
echo 'ok'
fi
Run Code Online (Sandbox Code Playgroud)
有两件事不应该是这样,
p=1暗示end = '21/09/2017'< date = '26/09/2017',但我仍然得到一个ok.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 ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |