[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