如何显示存储在变量中的日期前后的一天?
How to display a day before and after a date stored in a variable?
我正在尝试显示存储在变量中的给定日期之前和之后的日期。
我可以在没有像这样的变量的情况下做到这一点
thetgerwie:~ $ date -d '2019-09-09 1 day ago' +'%F' result: 2019-09-08
it works fine
但是如果我使用变量 dte="2019-09-09"
thetgerwie:~ $ date -d '(echo "$dte") day ago' +'%F' result: 2019-03-04
I get the current date
知道如何解决这个问题吗?
谢谢
date
命令支持算术运算
示例:
➜ ~ date -d '2019-09-09 + 1 day' +'%F'
2019-09-10
➜ ~ date -d '2019-09-09 - 1 day' +'%F'
2019-09-08
更新
请使用双引号
➜ ~ 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
希望这就是您要找的
干杯!
您不需要使用 echo
连接 $dte
变量。
在这种情况下使用双引号就足够了:
dte='2019-09-09'
date -d "$dte 1 day ago" +'%F'
我正在尝试显示存储在变量中的给定日期之前和之后的日期。 我可以在没有像这样的变量的情况下做到这一点
thetgerwie:~ $ date -d '2019-09-09 1 day ago' +'%F'
result: 2019-09-08
it works fine
但是如果我使用变量 dte="2019-09-09"
thetgerwie:~ $ date -d '(echo "$dte") day ago' +'%F'
result: 2019-03-04
I get the current date
知道如何解决这个问题吗?
谢谢
date
命令支持算术运算
示例:
➜ ~ date -d '2019-09-09 + 1 day' +'%F'
2019-09-10
➜ ~ date -d '2019-09-09 - 1 day' +'%F'
2019-09-08
更新
请使用双引号
➜ ~ 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
希望这就是您要找的
干杯!
您不需要使用 echo
连接 $dte
变量。
在这种情况下使用双引号就足够了:
dte='2019-09-09'
date -d "$dte 1 day ago" +'%F'