我有以下格式的字符串:
YYYY-MM-DD
如何在UNIX 和 freeBSD上将其转换为日期? 我知道它是
date -d $VAR +'%Y-%m-%d'
关于GNU
和
freeBSD上的 date -jf $VAR +'%Y-%m-%d'
但是如果我的脚本(sh,而不是bash)必须在这两个操作系统上运行怎么办?我该如何组合呢?
答案 0 :(得分:1)
因为date命令不同,如果检测到正确的平台,可能会有一种解决方案:
#!/bin/sh
VAR='2014-03-15'
platform='uknown'
str="$(uname)"
if [ "$str" == 'Linux' ]; then
platform='linux'
elif [ "$str" == 'FreeBSD' ]; then
platform='freebsd'
fi
然后根据平台你可以做到:
if [ "$platform" == 'linux' ]; then
date -d "$VAR" +'%Y-%m-%d'
elif [ "$platform" == 'freebsd' ]; then
date -jf "%Y-%m-%d" "$VAR" +'%Y-%m-%d'
fi
此外,我认为您缺少该命令的格式:
date -jf $VAR +'%Y-%m-%d'
我想我应该:
date -jf "format" $VAR +'%Y-%m-%d'