我试图在存储在变量中的给定日期之前和之后显示日期。没有像这样的变量,我可以做到这一点
thetgerwie:〜$ date -d'2011-09-09 1天前'+'%F'
result: 2019-09-08
它工作正常
但如果我使用变量dte =“2019-09-09”
thetgerwie:〜$ date -d'(echo“$ dte”)前一天'+'%F'
result: 2019-03-04
我得到当前日期
知道怎么解决这个问题吗?
谢谢
您不需要使用echo
来连接$dte
变量。
在这种情况下,使用双引号就足够了:
dte='2019-09-09'
date -d "$dte 1 day ago" +'%F'
date
命令支持算术运算
例:
➜ ~ date -d '2019-09-09 + 1 day' +'%F'
2019-09-10
➜ ~ date -d '2019-09-09 - 1 day' +'%F'
2019-09-08
UPDATE 请使用双引号
➜ ~ dte="2019-09-09"
➜ ~ echo $dte
2019-09-09
➜ ~ date -d "$dte day ago" +'%F'
2019-09-08
这是一个很好的资源: https://linuxcommando.blogspot.com/2009/11/fun-with-date-arithmetic.html
我希望这就是你要找的东西
干杯!