带有输入日期、输出日期的脚本

带有输入日期、输出日期的脚本

我想编写一个 bash 脚本来读取键盘输入(日期 dd:mm:yy),将其存储在变量中,然后回显它对应的日期,即

输入 : 03/08/2015

输出:周三

我在格式化时遇到一些问题,非常感谢任何帮助!

答案1

date接受带有-d标志的输入并打印它。但是,像您这样的输入格式将被视为 MM/DD/YYYY。但这应该不会太难。

首先,让我们获取变量的输入:

read INPUT

现在,我们需要将输入从 DD/MM/YYYY 更改为 MM/DD/YYYY。您可以使用 sed 和 awk 来做到这一点(您也可以使用以下命令来做到这一点awk

INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'`

现在 INPUT 的格式正确,将其输入date并使其仅打印日期:

date -d $INPUT +%A

把它们放在一起:

#!/bin/bash
read INPUT
INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'`
date -d $INPUT +%A

答案2

Perl 有一些很好的内置日期时间模块:

$ perl -MTime::Piece -E '
     print "Input date (dd/mm/YYYY): ";
     chomp( $date = <> );
     $datetime = Time::Piece->strptime($date, "%d/%m/%Y");
     say $datetime->strftime("%e %B is a %A");
'
Input date (dd/mm/YYYY): 3/8/2015
 3 August is a Monday

相关内容