在此Unix命令中需要帮助

时间:2019-03-10 10:40:09

标签: linux bash

我正在尝试获取目录中的最新文件,并获取修改后的时间。使用以下命令,但出现错误。有人可以告诉我我在做什么错吗? 并为此提供任何简化版本吗?

NOW=`date +%s`;
FILE=`ls -lpt /tmp/app/test/*.txt | head -n 1 | awk '{print $9}'`;
Time=`stat -c %Y ${FILE}`;
DIFF=`${NOW} - ${Time}`;
echo ${DIFF}

-bash:1552214130:找不到命令

1 个答案:

答案 0 :(得分:0)

这是错误的:

DIFF=`${NOW} - ${Time}`;

反引号表示要执行命令中包含的内容,然后将输出替换为命令。因此,这将尝试使用${NOW}的值作为要执行的命令的名称。但这只是数字时间戳,不是命令。

要在bash中执行计算,请使用$(( expression )),而不要使用反引号。

DIFF=$((NOW - Time))

顺便说一句,您不应将全名用作变量。按照惯例,这些保留给环境变量使用。