Как отобразить день до и после даты, сохраненной в переменной? - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь отобразить дату до и после заданной даты, сохраненной в переменной. Я могу сделать это без переменной, как это

thetgerwie: ~ $ date -d '2019-09-09 1 день назад' + '% F' result: 2019-09-08 все отлично работает

но если я использую переменную dte = "2019-09-09"

thetgerwie: ~ $ date -d '(echo " $ dte ") день назад' + '% F' result: 2019-03-04 Я получаю текущую дату

Есть идеи, как это исправить?

Спасибо

Ответы [ 2 ]

3 голосов
/ 06 марта 2019

Вам не нужно использовать echo для объединения переменной $dte.

Использование двойных кавычек должно быть достаточным в этом случае:

dte='2019-09-09'
date -d "$dte 1 day ago" +'%F'
2 голосов
/ 06 марта 2019

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

Надеюсь, это то, что вы ищете

Ура!

...