#!/bin/bash
at now +1 minutes -f ./test.sh
logFile="/home/.../testLog.txt"
time1="114000"
time2="153000"
currentTime=`date +"%H%M%S"`
echo "" >> "$logFile"
date >> "$logFile"
echo "$currentTime" >> "$logFile"
echo "" >> "$logFile"
if [[ "$currentTime" < "$time1" || "$currentTime" > "$time2" ]]
then
echo "case1" >> "$logFile"
else
echo "case2" >> "$logFile"
fi
このスクリプトはtest.sh
というファイルに保存されています。例えば午後5時にそれを実行すると、case1
がログファイルに書き込まれます。しかし、毎秒at
コール(1分ごとに発生する)のたびに、スクリプトはcase2
をログファイルに書き込みます。なぜ説明できますか?時間を求める仕事で
は、このスクリプトは、それ自体は毎分再スケジュールされていますか?代わりにループやcronからの実行を考えましたか? –
@thatotherguy:私はちょうど仕事でスクリプトがrecrusivelyを呼び出すという事実に気づいた。 – sjsam
@thatotherguy sjsamはすでに説明したように、 'at now at +1 minutes -f。/ test.sh'は、1分後にスクリプトを再帰的に呼び出すatジョブを定義しています。 –