Saya perlu serangkaian perintah atau satu perintah yang tidur sampai kemunculan berikutnya dari waktu tertentu seperti "4:00" terjadi.
Bagaimana saya melakukannya?
The at
perintah atau cronjob bukan pilihan karena saya tidak harus meninggalkan naskah saya sedang dalam.
Kasus spesifik yang saya bicarakan adalah skrip yang berjalan di layar. Sangat penting bahwa saya tidak menghentikan eksekusi skrip oleh skrip itu sendiri karena ada menyimpan banyak variabel penting yang diperlukan di beberapa titik skrip. Script tidak selalu seharusnya dieksekusi dalam masalah biasa. Itu hanya perlu dieksekusi pada waktu tertentu.
Akan sangat bermanfaat jika skrip harus membuat file atau tugas lain seperti cronjobs atau layar lainnya. Ini hanyalah masalah desain.
Saya hanya punya ide yang luar biasa:
difference=$(($(date -d "4:00" +%s) - $(date +%s)))
if [ $difference -lt 0 ]
then
sleep $((86400 + difference))
else
sleep $difference
fi
Apakah Anda punya ide yang lebih baik?
Informasi lebih lanjut akan ditambahkan jika diminta!
date -d
dengan date -j
dan mengganti 4:00
dengan 0400
.