[PATCH] nodewatcher: fix parsing error
Tobias Klaus
tk+ff at meskal.net
Di Jul 4 13:07:08 CEST 2017
Hey Adrian,
if wertet die Rückgabe von Kommandos aus. Sprich wenn dein Kommando bei Erfolg
0 und bei Misserfolg was anderes ausgibt kann mans einfach so anführen. Und ||
bzw && sind ja auch für normale Kommandos so definiert.
Ein besonderes Kommando ist das "test"-Kommando(man test) das kann allerhand
Sachen überprüfen und für die Lesbarkeit gibt es zusätzlich noch einen symlink
auf diesen test-Befehl der "[" heißt und der verlangt, dass man am Ende noch
ein "]" angibt...
Das was aussieht wie Syntax einer Programmiersprache bricht hier (wie fast
immer bei bash/sh) wieder auf ein entsprechendes Kommando herunter, das
wiederum 0 oder was anderes zurück gibt.
Also braucht man [? immer wenn man was überprüfen will, das man mit "test"
überprüfen kann... und ansonsten muss man sich ein anderes Kommando überlegen.
Achja zur verwirrung trägt natürlich noch bei, das man mit [ auch überprüfen
kann ob es Ausgaben gab
if [ "$(grep xy)" ] ;
und
if grep -q xy ;
sind also oft quasi gleichwertig.
Ist also alles recht verwirrend und daher hat die ursprüngliche Zeile dir und
mir auch so plausibel ausgesehen :-)
Viele Grüße
Tobias
Am Dienstag, 4. Juli 2017, 12:56:51 CEST schrieb Adrian Schmutzler:
> Hallo,
>
> der Teil mit dem stderr ist mir klar, aber kann mir mal jemand erklären
> (oder nen Link schicken), wann man die eckigen Klammern jetzt braucht und
> wann nicht?
>
> Grüße
>
> Adrian
>
> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf Of
> Tobias Klaus
> Sent: Dienstag, 4. Juli 2017 00:37
> To: franken-dev at freifunk.net
> Subject: [PATCH] nodewatcher: fix parsing error
>
> ---
> src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> index 6e0e538..f9d6e65 100755
> --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> @@ -104,7 +104,7 @@ crawl() {
> fi
>
> #Checks whether either fastd or L2TP is connected
> - if [ pidof fastd >/dev/null ] || [ grep -q '1'
> /sys/class/net/l2tp*/carrier ] ; then
> + if pidof fastd >/dev/null || grep -q '1' /sys/class/net/l2tp*/carrier
> 2> /dev/null ; then
> vpn_active="<vpn_active>1</vpn_active>"
> else
> vpn_active="<vpn_active>0</vpn_active>"
Mehr Informationen über die Mailingliste franken-dev