我有三个变量$ year $ month和$ day。他们每个人都收集用户的输入,如: myday 20160303 要么 myday 2016 03 03 以不同的方式,我使用了多个“if”语句来保存这个例子中的第一个yyyy年份变量,mm相应的月份和日期。 我需要用它们来找出一周中的哪一天。我现在拥有的是
nn=`date --date="$1" +"%A"`
echo "$nn"
它适用于20160404之类的输入,但如果用户键入3参数,如何在日期命令中正确使用所有三个变量来显示星期几?
答案 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