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
我在 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