私はこのbashスクリプトを持っています:
while [[ 1 ]] ; do sleep 3600 ; ./notify.sh --text "ricordati di bere" && play /mnt/musica/login.wav && zenity --info --text="<span size=\"xx-large\">Time is $(date +%Hh%M).</span>\n\nricordati di <b>bere</b>." --title="drink time" ; done
このスクリプトを実行したい(8:00時から、それほど重要ではない)から19:00(最も重要な)まで。それが可能だ?at
コマンドを見たことがありますが、「until」または「before」の設定方法がわかりませんでした。
この質問は this とは異なります
Cronを使用してスケジューリングを行います。スケジュールは次のようになります
0 8-19 * * * /path/to/script
または
0 8,9,10,11,12,13,14,15,16,17,18,19 * * * /path/to/script
スクリプトは次のようになります
#!/bin/sh
./notify.sh --text "ricordati di bere" &&
play /mnt/musica/login.wav &&
zenity --info \
--text="<span size=\"xx-large\">Time is $(date +%Hh%M)</span>\n\nricordati di <b>bere</b>." \
--title="drink time"
「 シェルスクリプトを使用して10分ごとにメールを送信する方法は? "」も参照してください。
Linuxを使用していると仮定すると、 timeout がこれを行う最も簡単な方法です。 08:00〜19:00は11時間なので、スクリプトを11時間実行するようにtimeoutに指示します。
timeout 11h /home/username/script
08:00にcronでジョブを開始し(または必要に応じて手動で)、別のcronエントリを使用して19:00に自動的に強制終了します。
kill -9 /home/username/script