使用SH shell脚本在FreeBSD 8.3中遇到问题.
以下日期命令适用于FreeBSD
date -j -f "%Y/%m/%d" "$ii" '+%s'
Run Code Online (Sandbox Code Playgroud)
该脚本需要在FreeBSD和Ubuntu中运行,但上面的日期函数在Ubuntu中不起作用.
这适用于Ubuntu
date --date="$ii" +"%s"
Run Code Online (Sandbox Code Playgroud)
所以我希望有一个变量来根据操作系统在这两者之间切换.
# Options (freebsd/linux)
recdate=freebsd
ii=2014/06/06
if [ "$recdate" == "freebsd" ]; then
recdate="\`date \-j \-f \"\%Y/\%m/\%d\" \"\$ii\" \'\+\%s\'\`"
else
recdate="\`date \-\-date\=\"\$ii\" \+\"\%s\"\`"
fi
Run Code Online (Sandbox Code Playgroud)
我尝试过多次转义和引用而没有成功.
错误如下(使用set -x):
+ [ '' == freebsd ]
+ date --date= +%s
date: illegal option -- -
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
+ recdate=''
Run Code Online (Sandbox Code Playgroud)