Bash日期案例不正确

时间:2018-05-12 16:26:15

标签: bash date bsd

我在bash脚本中使用以下内容

echo $(date +'%Y/%b')

我期待“2018 /可能”但我实际得到的是“2018 / May”。 有什么我可以做的,以确保月份是小写的? 我在BSD监狱里跑。

3 个答案:

答案 0 :(得分:2)

您问题中的命令与以下内容完全相同:

date +'%Y/%b'

日期命令本身没有小写日期选项(man strftime以获取详细信息),但您可以使用parameter expansion在bash中强制执行大小写:

$ x="$(date '+%Y/%b')"
$ x="${x,,}"
$ printf '%s\n' "$x"
2008/may

答案 1 :(得分:2)

由于man date没有显示有关小写月份的帮助,我只是管道它

echo $(date +'%Y/%b') | tr '[:upper:]' '[:lower:]'

答案 2 :(得分:2)

这个月的拼写首字母用英文拼写,这就是为什么没有格式字符串来表示小写的月份。

bash中,使用小写类型变量:

typeset -l now
now=$(date +'%Y/%b')
printf 'Date is %s\n' "$now"

这将输出

Date is 2018/may