使用带有多个变量的date命令

时间:2016-06-25 02:53:08

标签: bash date variables

我有三个变量$ year $ month和$ day。他们每个人都收集用户的输入,如: myday 20160303 要么 myday 2016 03 03 以不同的方式,我使用了多个“if”语句来保存这个例子中的第一个yyyy年份变量,mm相应的月份和日期。 我需要用它们来找出一周中的哪一天。我现在拥有的是

nn=`date --date="$1" +"%A"`

echo "$nn"

它适用于20160404之类的输入,但如果用户键入3参数,如何在日期命令中正确使用所有三个变量来显示星期几?

2 个答案:

答案 0 :(得分:3)

这应该适用于linux日期版本(GNU coreutils),不确定Mac OS X. date.bash看起来像这样:

#!/bin/bash
date -d "$1$2$3" +%Y-%m-%d

分配exe权限:

chmod u+x date.bash

执行:

]# ./date.bash 2016 06 24
2016-06-24

]# ./date.bash 20160624
2016-06-24

]#./date.bash 2016 0624
2016-06-24

对于Mac OS X,您可以在date.bash

中使用以下语法
#!/bin/bash
date -j -f "%Y%m%d" "$1$2$3" +%Y-%m-%d

在上述所有示例中,我使用+%Y-%m-%d作为格式。您可以使用+%A替换它,以获取当天的名称。

注意:对于Mac OS,./date.bash 2016-06-24不起作用,而在Linux中它可以正常工作。

答案 1 :(得分:2)

如果你想将三个参数合并为一个,那就简单地说:

"$1$2$3"

这会将2016 03 03变为20160303