ich würde gerne ein Skript schreiben, das auswertet, ob der heutige Tag gerade oder ungerade ist. Dazu habe ich mir folgendes einfallen lassen, was aber leider einen Fehler auswirft, den ich nicht finde
#!/bin/sh
UNGERADE=`seq -w 1 2 31`
GERADE=`seq -w 2 2 31`
DATUM=undef
TAG=`date +%d`
for TEST in "${GERADE}; do
expr "${TEST}" = "${TAG}" && DATUM=GERADER_TAG
done
for TEST in "${UNGERADE}"; do
expr "${TEST}" = "${TAG}" && DATUM=UNGERADER_TAG
done
echo $DATUM
exit0
[/code ]
Als Ausgabe bleibt $DATUM auf dem Wert undef. Dafür schmeißt expr eine "0" für jede Schleife auf stdout. Wo ist mein Denkfehler?
Ich habs. Das Problem ist, wenn seq in eine Variable schreibt, dann geht die for Schleife, warum auch immer, nicht jeden Wert durch, sondern nimmt die Variable als einen gesamten String.
Hier nun die Lösung: