我正在尝试获取目录中的最新文件,并获取修改后的时间。使用以下命令,但出现错误。有人可以告诉我我在做什么错吗? 并为此提供任何简化版本吗?
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:找不到命令
答案 0 :(得分:0)
这是错误的:
DIFF=`${NOW} - ${Time}`;
反引号表示要执行命令中包含的内容,然后将输出替换为命令。因此,这将尝试使用${NOW}
的值作为要执行的命令的名称。但这只是数字时间戳,不是命令。
要在bash
中执行计算,请使用$(( expression ))
,而不要使用反引号。
DIFF=$((NOW - Time))
顺便说一句,您不应将全名用作变量。按照惯例,这些保留给环境变量使用。