如何显示存储在变量中的日期之前和之后的一天?

问题描述 投票:-1回答:2

我试图在存储在变量中的给定日期之前和之后显示日期。没有像这样的变量,我可以做到这一点

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我得到当前日期

知道怎么解决这个问题吗?

谢谢

linux bash shell variables ksh
2个回答
3
投票

您不需要使用echo来连接$dte变量。

在这种情况下,使用双引号就足够了:

dte='2019-09-09'
date -d "$dte 1 day ago" +'%F'

2
投票

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

我希望这就是你要找的东西

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.