Мені потрібна серія команд або одна команда, яка спить до наступного появи конкретного часу, наприклад "4:00".
Як би я це зробив?
at
Команда або cronjob не варіант , тому що я не повинен залишати сценарій , я перебуваю в даний момент.
Конкретний випадок, про який я говорю, - це сценарій, що працює на екрані. Дуже важливо, щоб я не зупиняв виконання сценарію самим сценарієм, оскільки в ньому зберігається багато важливих змінних, які потрібні в якийсь момент сценарію. Сценарій не завжди повинен виконуватись у звичайній справі. Це просто потрібно виконати в певний час.
Було б дуже доброякісно, якби сценарій мав би створювати будь-які файли чи будь-які інші завдання, такі як кронштейни чи інші екрани. Це просто питання дизайну.
У мене просто була дивовижна ідея:
difference=$(($(date -d "4:00" +%s) - $(date +%s)))
if [ $difference -lt 0 ]
then
sleep $((86400 + difference))
else
sleep $difference
fi
Чи є якісь кращі ідеї?
Більше інформації буде додано за запитом!
date -d
з date -j
і замінити 4:00
з 0400
.