Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash日期案例不正确_Bash_Date_Bsd - Fatal编程技术网

Bash日期案例不正确

Bash日期案例不正确,bash,date,bsd,Bash,Date,Bsd,我在bash脚本中使用了以下内容 echo $(date +'%Y/%b') 我期待“2018/5月”,但我实际得到的是“2018/5月”。 我能做些什么来确保月份是小写的吗? 我在BSD监狱里跑步。您问题中的命令与以下命令完全相同: date +'%Y/%b' date命令本身没有小写日期选项(有关详细信息),但可以使用以下命令在bash中强制使用小写: 由于man date并没有显示小写月份的帮助,所以我会直接使用管道 echo $(date +'%Y/%b') | tr '[:uppe

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

echo $(date +'%Y/%b')
我期待“2018/5月”,但我实际得到的是“2018/5月”。 我能做些什么来确保月份是小写的吗?
我在BSD监狱里跑步。

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

date +'%Y/%b'
date命令本身没有小写日期选项(有关详细信息),但可以使用以下命令在bash中强制使用小写:


由于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

请尝试
echo$(date+'%Y/%b')|tr'[:upper:][:lower:][:code>或
date+'%Y/%b'|tr'[:upper:][:lower:][:code>在BSD系统上,
man date
不会告诉您任何日期格式选项,它们是
man strftime
的一部分。请参阅我的答案以获取链接。这是可行的,但我可以在线使用它吗?比如www.mydomain.com/$(日期+'%Y/%b')|tr'[:upper:''[:lower:''./somemoreURLhereAh。请尝试
www.mydomain.com/$(日期+'%Y/%b'|tr'[:upper:''[:lower:'')/somemoreURLhere
是否有效?谢谢您的回复!我真的想避免使用vars。我确实看到了这个“$(LC_ALL=nn_NO.UTF-8 date+''-d-%B-%Y')”,它可以工作,但使用了错误的语言。我试过了,但都是大写的。你知道这是否可行吗?对不起,这里没有。@Chris,nn_NO是挪威人,我认为大多数斯堪的纳维亚国家通常不会利用他们的月份。所以您没有应用案例控制,在这里,您只是定位到某个有您想要的案例的地方。:)如果您真的想在管道中应用小写,那么
tr
选项就是最好的选择<代码>$(日期'+%Y/%b'| awk'{print tolower()}')
也可以。虽然awk可能比
tr
重一点,但它可能允许您解决问题中未提及的其他挑战。显然
排版在bash中已过时。改为使用
declare
。@glennjackman
bash
使用这两种方法,并且可能允许
typeset
ksh93
shell对齐<代码>排版-l
在两个shell中执行相同的操作。我在
bash
sources.bash v4.3.48:
帮助排版
中没有找到这方面的过时标记<代码>过时。请参阅“帮助声明”。
@glennjackman在
bash
4.4.19:“声明”的同义词。请参阅“帮助声明”。“是的,帮助文本和手册是不同的。然而,字体为+1-l
Date is 2018/may