Ho bisogno di una serie di comandi o di un singolo comando che dorme fino alla successiva occorrenza di un momento specifico come "4:00".
Come potrei farlo?
Il at
comando o un cronjob non è un'opzione perché non devo lasciare lo script in cui mi trovo attualmente.
Il caso specifico di cui sto parlando è uno script in esecuzione sullo schermo. È molto importante che io non fermi l'esecuzione dello script dallo script stesso perché ci sono molte variabili importanti che sono necessarie in qualche punto dello script. La sceneggiatura non dovrebbe sempre essere eseguita regolarmente. Deve solo essere eseguito in un momento specifico.
Sarebbe molto positivo se lo script dovesse creare file o altre attività come cronjobs o altre schermate. Questa è semplicemente una questione di design.
Ho avuto un'idea stupenda:
difference=$(($(date -d "4:00" +%s) - $(date +%s)))
if [ $difference -lt 0 ]
then
sleep $((86400 + difference))
else
sleep $difference
fi
Hai idee migliori?
Ulteriori informazioni verranno aggiunte se richiesto!
date -d
con date -j
e sostituirlo 4:00
con 0400
.