Bash 日期大小写不正确

Bash date case not correct

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

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

我期待“2018/may”,但我实际得到的是“2018/May”。 我能做些什么来确保月份是小写的吗? 我 运行 在 BSD 监狱里。

您问题中的命令与简单的相同:

date +'%Y/%b'

日期命令本身没有小写日期选项(man strftime for details), but you can force case within bash using parameter expansion:

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

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

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

月份在英文中首字母大写,这就是为什么没有格式字符串来获得小写月份的原因。

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

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

这将输出

Date is 2018/may