失败的shell脚本

失败的shell脚本,shell,Shell,Shell脚本应检查文件是否在30分钟内到达。如果文件未在30分钟内到达,则脚本应失败 interval=2 ((end_time=${SECONDS}+30)) directory=/app/mus/storepick/dataflowextract/shell file=backup.cfg while ((${SECONDS} < ${end_time})) do if [[ -r ${directory}/${file} ]] then echo

Shell脚本应检查文件是否在30分钟内到达。如果文件未在30分钟内到达,则脚本应失败

interval=2
((end_time=${SECONDS}+30))

directory=/app/mus/storepick/dataflowextract/shell
file=backup.cfg

while ((${SECONDS} < ${end_time}))
do
    if [[ -r ${directory}/${file} ]]
    then
        echo "File has arrived."
        exit 0
    fi
    sleep ${interval}
done

echo "File not arrivied !!!"

exit 42
interval=2
((结束时间=${SECONDS}+30))
目录=/app/mus/storepick/dataflowextract/shell
file=backup.cfg
而(${SECONDS}<${end_time}))
做
如果[[-r${directory}/${file}]]
然后
“echo”文件已到达
出口0
fi
睡眠${interval}
完成
echo“文件未送达!!!”
42号出口

您没有提到什么工作不正常。但是,我猜脚本退出得太早,声称文件尚未到达


您将结束时间计算为
${SECONDS}+30
——这只是未来的30秒,而不是30分钟。在未来的30分钟内,您需要
${SECONDS}+1800

谢谢!!!我的代码工作正常,但当它在30分钟内没有收到文件时,脚本应该会失败,这是我为测试目的保留的30秒。