[PATCH 4/4] Setzt einen Wert wenn der Router weder Position noch Mail Adresse hat, cronjob alle 5 Minuten
Tobias Klaus
tk+ff at meskal.net
Mi Apr 6 20:58:25 CEST 2016
Hallo,
On Mittwoch, 6. April 2016 18:34:34 CEST mayosemmel wrote:
> > +uci get system. at system[0].latitude
> > +lat=$?
> > +uci get system. at system[0].longitude
> > +lon=$?
> > +uci get system. at system[0].contact
> > +mail=$?
> > +if [ $lat -eq 1 ] && [ $lon -eq 1 ] && [ $mail -eq 1 ] ; then
>
> Ich denke das ließe sich auch schöner lösen z.B.
> if [ uci get system. at system[0].latitude ] && \
> [ uci get system. at system[0].longitude ] && \
> [ uci get system. at system[0].contact ] ; then
So funktioniert das vermutlich auch nicht.
[ ist keine Sprachelement sondern ein Programm das sich im groben verhält wie
das Programm "test"-> "man test".
"if" testet _nur_ auf den Rückgabewert selbst. Wenn man "if [ " nutzt, testet
man damit auf den Rückgabewert von "[" also "test".
In eurem Fall "sieht" das test progamm nur einen string. Den wertet es dann
standardmäßig mit "-n"(Länge ungleich Null) aus. Das heißt einerseits, dass
der uci call nie aufgerufen wird und andererseits, dass "test" immer "true"
also 0 zurückgeben wird.
Da wir aber eh auf Rückgabewerte testen wollen, können wir gleich "if"
verwenden.
Das hier sollt funktionieren:
if uci get system. at system[0].latitude \
&& uci get system. at system[0].longitude \
&& uci get system. at system[0].contact ; then
Grüße
Tobias
Mehr Informationen über die Mailingliste franken-dev