【发布时间】:2015-02-07 01:11:16
【问题描述】:
示例代码:
modified_time=`ls -lt core* | head -1 | awk '{print $6,$7,$8}'`
echo modified time = $modified_time
我正在尝试借助 aix box 上的以下命令以秒为单位转换文件的最后修改时间
t2=`date +'%s' -d "$modified_time"`
echo t2 = $t2
注意:我发布的代码正在 bash 上的 cygwin 上运行。但是它在 AIX ( ksh ) 上给出错误。 我收到以下错误:
egdev04{stc}[/home/stc]% t2=`date +'%s' -d "$modified_time"`
Invalid character in date/time specification.
Usage: date [-u] [+Field Descriptors]
有人可以告诉我代码的哪一部分是错误的,并建议需要改用什么。
【问题讨论】:
-
你不应该使用旧的和过时的反引号,使用括号。第一行也可以缩短一些:
modified_time=$(ls -lt core* | awk 'NR==1 {print $6,$7,$8}') -
根据报错信息,错误的部分是
date命令。请尝试date -d "$modified_time" +'%s' -
它没有用。我发布的代码正在 bash 上的 cygwin 上运行。但是它在 AIX ( ksh ) 上给出错误。
-
@Ameet 请使用此重要信息更新您的原始帖子。
-
echo modified time = $modified_time的输出是什么
标签: shell unix awk scripting aix