我正在尝试检查文件是否超过5分钟,如果是这种情况,我想调用另一个发送邮件的shell脚本。
check_file.sh:
#!/bin/sh
if [$(( (`date +%s` - `stat -L --format %Y /home/ftp/test.txt`) > (5*60) ))] = 1
then sh ./testmail.sh
fi
错误输出:3:./ check_file.sh:[1]:未找到
答案 0 :(得分:1)
尝试类似:
if find /home/ftp/test.txt -mmin +5 &>/dev/null; then
<your code>
fi
答案 1 :(得分:1)
这有效:
if test "`find /home/ftp/test.txt -mmin +5`"; then
echo "file found"
fi
答案 2 :(得分:1)
您的脚本首先根据$((....))
表达式计算一个数字。在您的情况下,此数字似乎为1
。
这意味着你留下了命令
if [1] = 1
这意味着bash尝试查找名为[1]
的命令,并使用两个参数=
和1
调用它。
由于在PATH中找不到名为[1]
的可执行文件,bash会告诉您它无法找到该文件。
我认为
if (( (`date +%s` - `stat -L --format %Y /home/ftp/test.txt`) == 1 ))
then
....
应该做的。