2016-12-15 3 views
0
#!/bin/bash 

DAYS=${2:-0} 
DATE=$(date '+%Y-%m-%d' -d "2016-11-20 +$DAYS days") 

Я пытаюсь выполнить вышеуказанные действия в в моем сценарии оболочки, но я получаю эту ошибку:Linux формат нелегальной даты

date: illegal time format 
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... 
      [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format] 
2016-12-14 17:31:31,779 

Не уверен, что это неправильно

+0

Вы используете 'GNU date'? 'date -version'? – Inian

+0

получил эту ошибку: '$ date --version дата: незаконный вариант - - использование: date [-jnu] [-d dst] [-r seconds] [-t west] [-v [+ | -] val [ymwdHMS]] ... [-f fmt date | [[[mm] dd] HH] MM [[cc] yy] [.ss]] [+ format] ' – jxn

+1

Кажется, вы не используете' GNU date', отлично работает на нем! – Inian

ответ

1

Если вы используете команда non-GNU date может быть версией FreeBSD на Mac, используйте флаг -j.

date -j -v+2d -f "%Y-%m-%d" "2016-11-20" +%Y-%m-%d 
2016-11-22 

использовать переменную, только двойные кавычки это

DAYS=2 
date -j -v+"$DAYS"d -f "%Y-%m-%d" "2016-11-20" +%Y-%m-%d 
2016-11-22 
+0

Чтобы также установить Date в качестве переменной, я должен добавить это: 'Date = $ (date -j -v +" $ DAYS "d -f"% Y-% m-% d "" 2016-11-20 "+% Y-% m-% d) ' – jxn

+0

эй @ Иниан, это сработало, но я также хотел переменную DATE в моем выше вопросе – jxn

Смежные вопросы