Shell 计算日期时差
我有两个变量 GMDCOM变量以以下格式存储日期时间Shell 计算日期时差,shell,Shell,我有两个变量 GMDCOM变量以以下格式存储日期时间 Tue Oct 1 13:37:38 2013 Tue Oct 1 13:32:40 2013 Tue Oct 1 13:37:53 2013 Tue Oct 1 13:35:33 2013 Tue Oct 1 13:34:33 2013 Tue Oct 1 13:32:33 2013 GMDRRS变量以以下格式存储日期时间 Tue Oct 1 13:37:38 2013 Tue Oct 1 13:32:40 2013 T
Tue Oct 1 13:37:38 2013
Tue Oct 1 13:32:40 2013
Tue Oct 1 13:37:53 2013
Tue Oct 1 13:35:33 2013
Tue Oct 1 13:34:33 2013
Tue Oct 1 13:32:33 2013
GMDRRS变量以以下格式存储日期时间
Tue Oct 1 13:37:38 2013
Tue Oct 1 13:32:40 2013
Tue Oct 1 13:37:53 2013
Tue Oct 1 13:35:33 2013
Tue Oct 1 13:34:33 2013
Tue Oct 1 13:32:33 2013
我想计算一下日期时间差
e、 g 2013年10月1日星期二13:37:38-2013年10月1日星期二13:35:33,格式为hh:mm:ss
并将其存储在另一个变量中。我不想使用PERL、AWK或SED。相反,我想使用普通的bashshell命令来实现它。请帮助。尝试以下内容
#!/bin/bash
GMDCOM='Tue Oct 1 13:37:38 2013'
GMDRRS='Tue Oct 1 13:35:33 2013'
d1=$(date -d "$GMDCOM" +%s)
d2=$(date -d "$GMDRRS" +%s)
dd=$(($d1-$d2))
ss=$(($dd%60))
mm=$((($dd/60)%60))
hh=$((($dd/3600)%60))
printf "%02d:%02d:%02d\n" "$hh" "$mm" "$ss"
当我试图运行shell时,它会显示date:invalize选项——我无法运行上面的代码。当我试图运行shell时,它会显示日期:非法选项--d@Tanmoy请键入
人员日期
并查看是否显示-d
选项。您确定要在bash
中运行此程序吗?是的,我使用了man date..它没有显示-d选项。我只在bash中运行这个。@Tanmoy很抱歉,但在这种情况下,您必须安装GNUdate
实用程序,或者等待其他解决方案。我原以为所有的date
实用程序都会有这个,但似乎这是特定于GNU日期的。检查这个或@fedorqui-Ohh,我没有注意到来自同一个OP的副本。这应该是绝对关闭的。