#!/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
不确定有什么问题
答案 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