XPectIT
the just
Ich habe ein Script, das den folgenden Teil enthält:
Egal was ich auch für Argumente übergebe, ich lande immer im "* )"-Teil.
Und die Variable $PUNKTE wird mir mit dem korrekten Wert ausgegeben.
z.B.
Was ist eigentlich will:
Das dieses Script mit verschiedenen Argumenten gestartet werden kann, die ich entsprechend Auswerte. Aufgrund dieser Argumente soll eine Datei nach $SUCHSTRING durchsucht werden. Und je nachdem, wie die die Argumente sind, soll sich $SUCHSTRING anpassen.
Da das ganze auf dem Router läuft ist keine Bash, kein Perl und garnichts sonst installiert.
Unter Linux gehts problemlos, warum auch immer, aber bei meinem FreeBSD 5.2.1 bockt es an o.a. case-Zweig.
Endergegnis:
Eine Übersicht der ISDN-Verbindungen aus der Datei /var/log/isdnd.acct gezogen.
Hat jemand ne Idee wie ich das zum laufen bekomme?
Code:
case "$#" in
0 ) # Kein Argument.
exit 1
;;
1 ) # 1 Argument, das es zu Pruefen und auszuwerten gilt.
# Wurde ein komplettes Datum übergeben?
PUNKTE="`echo $1 | sed -e 's/[^/.]/ /g' | wc -w`"
case "$PUNKTE" in
0 ) # Es wurde kein PUNKT angegeben
exit 1
1 ) # Es wurde ein PUNKT angegeben
MONAT="`echo $1 | cut -d '.' -f1`"
JAHR="`echo $1 | cut -d '.' -f2`"
SUCHSTRING="**.$MONAT.$JAHR"
;;
2 ) # Es wurden zwei PUNKTE angegeben
TAG="`echo $1 | cut -d '.' -f1`"
MONAT="`echo $1 | cut -d '.' -f2`"
JAHR="`echo $1 | cut -d '.' -f3`"
SUCHSTRING="$TAG.$MONAT.$JAHR"
;;
* ) # Zuviele PUNKTE wurden angegeben
echo "Bitte Datumseingabe überprüfen!"
echo "$PUNKTE"
exit 1
;;
esac
;;
esac
Und die Variable $PUNKTE wird mir mit dem korrekten Wert ausgegeben.
z.B.
Code:
$ ./scriptname 03.12
Bitte Datumseingabe überprüfen!
1
$ ./scriptname 03.12.2003
Bitte Datumseingabe überprüfen!
2
$ ./scriptname 12
Bitte Datumseingabe überprüfen!
0
Was ist eigentlich will:
Das dieses Script mit verschiedenen Argumenten gestartet werden kann, die ich entsprechend Auswerte. Aufgrund dieser Argumente soll eine Datei nach $SUCHSTRING durchsucht werden. Und je nachdem, wie die die Argumente sind, soll sich $SUCHSTRING anpassen.
Da das ganze auf dem Router läuft ist keine Bash, kein Perl und garnichts sonst installiert.
Unter Linux gehts problemlos, warum auch immer, aber bei meinem FreeBSD 5.2.1 bockt es an o.a. case-Zweig.
Endergegnis:
Eine Übersicht der ISDN-Verbindungen aus der Datei /var/log/isdnd.acct gezogen.
Hat jemand ne Idee wie ich das zum laufen bekomme?