das Problem: Ich nutze eine altes Toschiba Libretto als Wecker (mit eisfair). Die Distro hat das nette feature mittels ncurses Oberfläche ein crontab zu editieren, genaugenommen ein Vorlage, die dann zur crontab wird. Nett daran ist, dass man die Weckzeiten an-/ausschalten kann. Die Vorlage für die crontab folgt diesem Muster:
Code: Alles auswählen
.....
CRON_14_NAME='So_Frau'
CRON_14_ACTIVE='yes'
CRON_14_TIMES='45 7 * * 7'
CRON_14_COMMAND='/root/play.sh Frau'
CRON_15_NAME='So_mclien'
CRON_15_ACTIVE='no'
CRON_15_TIMES='40 8 * * 7'
CRON_15_COMMAND='/root/play.sh mclien'
Meine Intention ist nun auf dem Display immer die nächste anstehende Weckzeit für "mclien" und "Frau" anzuzeigen inkl. der Info, ob die Weckzeit "an" oder "aus" ist.
mit dem "date" Befehl kann ich ja mittels -d Option folgende Werte erzeugen: "jetzt", "jetzt+24h"(tomorrow), ich kann auch aus den einem Wochentag und der Uhrzeit den Weckzeitpunkt in das passende date Format überführen:
Code: Alles auswählen
# nächster Mittwoch 13:37
date --date "wed 13:37" '+%a %H:%M %Y %m %d'
Wed 13:37 2015 02 11 (am Do, 5.2.2015, 16:04)
Code: Alles auswählen
NUMDOW=(sun mon tue wed thu fri sat sun)
echo ${NUMDOW[2]}
tue
Allerdings weiß ich jetzt nicht, ob es schlau ist die o.g. Datei mittels source als Variablen einzulesen oder lieber als Textdatei mit grep/awk/sed zu "behandeln". Ich habe es mit Variablen versucht, bin aber zu unwissend die in einer for Schleife weiter zu bearbeiten (zumindest wird mir immer eine falsche Substitutioin angemeckert):
Code: Alles auswählen
for i in `seq 2 15`
do
CRON_${i}_TIMES_T=`echo "$(CRON_${i}_TIMES)" | awk '{print $2":"$1}'`
done
Also die Essens ist eigentlich aus de obigen Datei eine textdatei zu machen die etwas das enthhält:
Code: Alles auswählen
Frau
on 7:45
mclien
off 5:42