Linux非法日期格式

时间:2016-12-15 06:53:26

标签: linux bash macos shell

#!/bin/bash

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

我正在尝试在我的shell脚本中执行上述操作,但我一直收到此错误:

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

不确定有什么问题

1 个答案:

答案 0 :(得分: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