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

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

我想在我的shell腳本執行上述操作,但我不斷收到此錯誤:如果您正在使用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'? '日期 - 版本'? – Inian

+0

得到此錯誤:'$ date --version date:非法選項 - - 用法: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

非GNU date命令可能是Mac上的FreeBSD版本,請使用-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

要設置日期作爲變量,我必須添加:'日期= $ -v +「$ DAYS」d -f「%Y-%m-%d」「2016-11-20」+% Y-%m-%d)' – jxn

+0

嗨@Inian,它的工作,但我也想在我的上述問題的DATE變量 – jxn