尽管相同的脚本在一个平台(Arch linux)上运行良好,但在我的其他移动平台(Maemo Linux)上运行良好,但我遇到了这个非常奇怪的错误。我将在此处传递代码的相关部分以及行编号:
41 for DIR in $DIRS
42 do
43 tempdir=$DIR/
44 tempval=$(stat -c %Y $tempdir)
45 echo $tempval
46 if (( $tempval > $(date +%s) - 3600*24*30 )); then
47 echo "I am done basically. Exiting..."
48 exit
49 else
50 continue
51 fi
52 done
在上面的代码中DIRS是一个包含目录名称的列表。在此循环中,我尝试查找列表中 30 天以上的目录,如果找到,我将退出脚本。
第 45 行放在那里基本上是为了调试目的。
我收到以下错误:
./script.sh : line 52 : 1372757584 : not found
根据评论建议进行一些更改后:
好的,现在的错误如下:
scone.sh: line 46: ((: 1372768246 -gt 1372770593 - 3600*24*30 : syntax error
in expression (error token is "1372770593 - 3600*24*30 ")
答案1
实际上,我已经按照评论中的三个人的建议进行了更改,所有这些更改都是脚本正常运行所必需的。
最终代码如下:
temptime=$(date +%s)
temptime=`expr $temptime - 2592000`
for DIR in $DIRS
do
tempdir=$DIR/
echo $tempdir
tempval=$(stat -c %Y $tempdir)
echo $tempval
if [[ $tempval -gt $temptime ]]; then
echo "Exiting gracefully!!!"
exit
else
continue
fi
done