Shell-Skript Datum in einer Datai suchen

A

augschburger

Hallo zusammen

Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows.

Seit geraumer Zeit versuche ich meine Künste mit verschiedenen Linux-Versionen.

Jetzt zu meinem Problem.

Ich muss für meinen Onkel einen Schaufensteranzeige erstellen.
Der Inhalt muss sich jeden Morgen automatisch aktualisieren.
Es gibt 24 verschiedene Contentbilder, welcher auf der Anzeige dargestellt werden. (Pro Tag immer nur eines)
Alle 24 Tage wiederholt sich das. Ergo: Tag 25 kommt wieder das Bild 1 dran.

Also Hardware war mein Ansatz einen Raspberry-Pi hinter den Monitor und gut ist.

Mein Gedanke war jetzt ein täglicher Cron-Job, welcher jeden Tag ein Skript startet welches das aktuelle Datum in einer Datei sucht und den Wert, welcher neben dem Datum steht in eine Variable schreibt.
Diese Variable wird in einen Copy-Job gesetzt welche dann das aktuelle Bild für den Tag korrekt zur Anzeige kopiert.

Hat für mein Problem jemand einen Lösungsansatz????
 
Ansätze gibt's viele - entweder Du gehst auf den "day of the year" mod 25, wie von Dir vorgeschlagen den Tad über eine Datei, ... - je nach Lust und Laune und was wie gepflegt werden soll.

Zu Lektüre empfehle ich:
Code:
man date
man grep
man cut

... alternativ kann man wie gesagt auch einfach einen day of the year mod 25 rechnen und die Bilder gleich entsprechend benennen...
 
Einfach eine Schleife die von 1-24 zählt und das entsprechende Bild anzeigt, aber nur weil ich auf Dinge wie "day of the year mod 25" im ersten Moment nicht komme :)
 
naja, die Schleife ist halt ein wenig doof, wenn Du das Script jeden Tag als Cronjob aufrufen willst - dann musst Du ja auch herausfinden, wie weit die Schleife denn laufen soll - und dann hast Du den gewünschten Endwert ja schon :-)

... oder wolltest Du nach jedem Schleifendurchlauf einen delay von 1d einbauen?
 
Counter in einer Datei zwischenspeichern ;-).

Code:
headcrash@minion:/tmp$ cat counter
counter=1

headcrash@minion:/tmp$ cat counter.sh
. /tmp/counter
if [ ${counter} -lt 4 ]; then
  counter=$((counter+1))
else
  counter=1
fi

echo "counter="${counter} > /tmp/counter

So auf die schnelle unelegant, unvollständig.
Wäre eventuell zu berücksichtigen, ob die Bilder alle gleichoft angezeigt werden sollen, (doppelte Ausführung vom Skript abfangen und die üblichen Scherze).

An die Eleganz das mit dem Modulo abzufackel kommt das ganz klar nicht.
 
..."day of the year" mod 25...
Ich empfehle mod 24 und die Unixtime, die sich am Jahresende nicht durcheinander bringen lässt:
Code:
Nr=$(($(date +%s)/86400%24))
Liefert also Nummern von 0 bis 23. Empfohlene Shell dafür: Bash.
 
Zurück
Oben