使用bash中的while循环打印增量日期
发布时间:2020-12-15 21:00:32 所属栏目:安全 来源:网络整理
导读:我尝试在bash脚本中使用while循环在两个日期之间打印日期. 但是当我执行时,我得到以下错误: test.sh: line 8: [: 02-12-14: integer expression expected 以下是我的代码,任何人都可以帮助我 #!/bin/bashsdate=02-12-14edate=02-25-14while [ "$sdate" -le
我尝试在bash脚本中使用while循环在两个日期之间打印日期.
但是当我执行时,我得到以下错误: test.sh: line 8: [: 02-12-14: integer expression expected 以下是我的代码,任何人都可以帮助我 #!/bin/bash sdate=02-12-14 edate=02-25-14 while [ "$sdate" -le "$edate" ] do echo $sdate sdate=$(date +%m-%d-%y -d "$sdate + 1 day") done 解决方法
您应该将它们存储为时间戳:
#!/bin/bash sdate=$(date -d '2014-02-12' +%s) edate=$(date -d '2014-02-25' +%s) while [[ sdate -le edate ]]; do date -d "@$sdate" '+%m-%d-%y' sdate=$(date -d "$(date -d "@${sdate}" ) + 1 day" +%s) done 输出: 02-12-14 02-13-14 02-14-14 02-15-14 02-16-14 02-17-14 02-18-14 02-19-14 02-20-14 02-21-14 02-22-14 02-23-14 02-24-14 02-25-14 >对于Bash中的条件表达式,总是更喜欢[[]]而不是[]. (())也可能是偏好.>它需要GNU日期.例如date –version = date(GNU coreutils)8.21 …> mm-dd-yy不是输入日期可接受的格式,因此我使用了yyyy-mm-dd,这是可以接受的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |