为什么我得到日期:非法时间格式?
Why am I getting date: illegal time format?
如果我 运行 在 OSX bash 终端上执行此命令:
date -jf '%F %TZ' -v+$((10**9))S -u "2011-04-25 00:00:00Z"
我得到了我想要的:1 月 1 日星期四 01:46:40 UTC 2043
但是当我 运行:
./gigasecond.sh '2011-04-25'
我得到:
2011-04-25 00:00:00Z
date: illegal time format
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
所有 gigabit.sh 包含的是:
#!/bin/bash
size=${#1}
DATE_SET_TO_MIDNIGHT="${1%Z} 00:00:00Z"
echo $DATE_SET_TO_MIDNIGHT
PARSE_DATE_AND_FORMAT=$(date -jf '%F %TZ' -v+$((10**9))S -u "$DATE_SET_TO_MIDNIGHT")
echo $PARSE_DATE_AND_FORMAT
我错过了什么?
您需要引用 $DATE_SET_TO_MIDNIGHT
,因为它包含空格。
PARSE_DATE_AND_FORMAT=$(date '%F %TZ' -v+$((10**9))S -u "$DATE_SET_TO_MIDNIGHT")
除非你有很好的理由不,你应该总是引用参数扩展。
如果我 运行 在 OSX bash 终端上执行此命令:
date -jf '%F %TZ' -v+$((10**9))S -u "2011-04-25 00:00:00Z"
我得到了我想要的:1 月 1 日星期四 01:46:40 UTC 2043
但是当我 运行:
./gigasecond.sh '2011-04-25'
我得到:
2011-04-25 00:00:00Z
date: illegal time format
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
所有 gigabit.sh 包含的是:
#!/bin/bash
size=${#1}
DATE_SET_TO_MIDNIGHT="${1%Z} 00:00:00Z"
echo $DATE_SET_TO_MIDNIGHT
PARSE_DATE_AND_FORMAT=$(date -jf '%F %TZ' -v+$((10**9))S -u "$DATE_SET_TO_MIDNIGHT")
echo $PARSE_DATE_AND_FORMAT
我错过了什么?
您需要引用 $DATE_SET_TO_MIDNIGHT
,因为它包含空格。
PARSE_DATE_AND_FORMAT=$(date '%F %TZ' -v+$((10**9))S -u "$DATE_SET_TO_MIDNIGHT")
除非你有很好的理由不,你应该总是引用参数扩展。