Dr.*_*eon 18
试试这个 :
MONTHS=(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
echo ${MONTHS[3]}
Run Code Online (Sandbox Code Playgroud)
或者按照@ potong的建议(月份号和索引之间有1-1对应关系)
MONTHS=(ZERO Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
echo ${MONTHS[4]}
Run Code Online (Sandbox Code Playgroud)
Ami*_*ani 14
#! /bin/bash
case $1 in
[1-9]|1[0-2]) date -d "$1/01" +%b ;;
*) ; exit 1
esac
Run Code Online (Sandbox Code Playgroud)
可以像这样获得对区域设置敏感的结果;将数字放入日期的月份位置,作为日期传递到日期,并选择任意的年和日(远离50ies和遥远的未来,避免天数远大于20)。它不一定是实际年份:
i=10; date -d 2012/${i}/01 +%b
Run Code Online (Sandbox Code Playgroud)
在这里,使用语言环境 de_DE,我得到如下结果:
Okt
Run Code Online (Sandbox Code Playgroud)
(我没有选择April,因为date默认取当前月份,所以格式不好的-d -date,你得到April,即使i=10。我知道,因为我经历过。此外:April 的德语名称是 April,所以它不能很好地作为更详细的例子的例子,现在紧随其后:)
i=10; LC_ALL=C date -d 2012/${i}/01 +%b
Run Code Online (Sandbox Code Playgroud)
这以国际标准风格显示月份。
该解决方案的优点是,它将在革命中幸存下来,革命将月份重命名为雾月、奥巴默或国际化尝试(德语中的 Mär、Mai、Okt、Dez,即)。
| 归档时间: |
|
| 查看次数: |
10524 次 |
| 最近记录: |