Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Shell ';日期-d';不在我的ksh外壳中工作_Shell_Unix_Ksh - Fatal编程技术网

Shell ';日期-d';不在我的ksh外壳中工作

Shell ';日期-d';不在我的ksh外壳中工作,shell,unix,ksh,Shell,Unix,Ksh,我需要计算两个日期之间的差异,结果应为HH:SS格式 但问题是,我的date/shell不支持'-d'标志。大多数文章只建议使用“-d”选项 input date format = '07-Apr-2017 02:19:20' 这相当于 date +"%d-%b-%Y %H:%M:%S" 当我使用date-d时,我得到了类似“日期/时间规范中的无效字符”的错误我打赌ksh93t+应该支持printf%%(fmt)T' [步骤101]$echo${.sh.version} 版本AJM 93u+

我需要计算两个日期之间的差异,结果应为HH:SS格式

但问题是,我的date/shell不支持'-d'标志。大多数文章只建议使用“-d”选项

input date format = '07-Apr-2017 02:19:20'
这相当于

date +"%d-%b-%Y %H:%M:%S"

当我使用date-d时,我得到了类似“日期/时间规范中的无效字符”的错误我打赌
ksh93t+
应该支持
printf%%(fmt)T'

[步骤101]$echo${.sh.version}
版本AJM 93u+2012-08-01
[步骤102]$date-d'07-Apr-2017 02:19:20'+%s#GNU日期
1491502760
[步骤103]$printf%%(%s)T\n''2017年4月7日02:19:20'
1491502760
[步骤104]$

日期
实际上是由操作系统提供的,而不是由shell本身提供的。因此,无论您使用的是bash、ksh、ash等(或者根本不使用shell——您可以像任何其他可执行文件一样,直接从C调用
/usr/bin/date
),但您的操作系统供应商提供的
date
的哪个版本……因此,了解(1)您的实际操作系统,以及(2)您有哪些工具会很有帮助。(
perl
实际上有一些非常全面的数据库可用;Python也有一些现成的好工具)。感谢您在本文中让我了解shell与Os。(1) 当我使用uname-a检查时,它显示了“AIX”服务器。(2) 我希望在同一个shell脚本中进行计算,而不是仅仅为了计算而调用另一个perl/python。是否可以使用in-shell脚本?AIX提供的
date
命令非常简单。它可能是
perl
python
awk
,但您需要运行其他东西。(具体的
awk
很重要——如果您安装了
gawk
,它有一组相当不错的日期管理函数)。它是从命令行工作的,而不是从shell脚本,只是像()T来自shell脚本。我应该为在shell脚本中工作做些什么吗?shell脚本的第一行是什么样子的?你是如何运行你的脚本的?介意分享你的剧本让别人帮你看一下吗?运行脚本时有错误吗?
#!usr/bin/ksh
这是第一行..我像运行
sh test一样运行它。ksh
sh并不总是ksh,所以您最好使用
ksh test.ksh
尝试
ksh tesh.ksh
。仍然没有得到期望的输出..我在这里遗漏了什么吗?