Linux Shell Programmierung?

2 Antworten

man date hilft immer:

  • date +%s gibt die aktuelle Zeit in Sekunden seit 1.1.1970T00:00:00Z aus.
  • date -d 18:00 +%s macht das für die Uhrzeit 18:00 (innerhalb der nächsten 24 Stunden).
  • $(befehl) ist die Ausgabe eines Befehls. "echo now=$(date +%s)" produziert also etwas wie "now=1669392168".
  • $(( zahl - zahl )) subtrahiert zwei Zahlen. Diese Zahlen können natürlich auch durch einen $(befehl) angegeben werden.
  • date -ud @zahl +%H:%M gibt eine Zahl in Sekunden als Uhrzeit aus.

Das alles zusammen ergibt:

date -ud "@$(( $(date -d 18:00 +%s) - $(date +%s) ))" +%H:%M