给出一个像这样传递的参数:
~/Documents/checkout/check-out.sh potatoes '2013/05/22 13:43:00'
使用第1行或第2行,生成
st=`date --date "$2" +%s` # mogul's suggestion
st=$(date --date="$2" +%s) # Kent's suggestion
st=$(date --date="2013/05/22 14:45:00" +%s)
date: illegal option -- -
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
答案 0 :(得分:4)
OS X的date
版本无法理解--date
选项;您需要使用-f
并为其指定输入日期的格式:
st=$(date -j -f "%Y/%m/%d %T" "$2" +%s)
例如:
$ date -j -f "%Y/%m/%d %T" "2013/05/22 14:45:00" +%s
1369259100
答案 1 :(得分:1)
你的OSX附带BSD date
,而不是GNU date
,所以没有GNU风格的选项(你可以通过macports或homebrew安装GNU date
。)
答案 2 :(得分:0)
x='2013/05/22 13:43:00'
st=`date --date "$x" +%s`
似乎在这里工作。或者在你的情况下它应该是
st=`date --date "$2" +%s`
答案 3 :(得分:0)
试试这个:
st=$(date --date="$2" +%s)