[PATCH v2] fff-gateway: Add sanity checks

Adrian Schmutzler mail at adrianschmutzler.de
Mo Aug 19 20:25:14 CEST 2019


Hallo Fabian,

 

das mit dem if ist mir bewusst, ich habe einfach auf meinem dezentralen Gateway

 

uci get gateway

 

eingegeben, und dann kommt … nichts. Das hat mich gewundert.

 

Exit Status passt:

uci get gateway && echo „a“ || echo „b“

gibt „a“

uci get gateway2 && echo „a“ || echo „b“

gibt „b“

 

Grüße

 

Adrian

 

From: Fabian Bläse [mailto:fabian at blaese.de] 
Sent: Montag, 19. August 2019 20:20
To: Adrian Schmutzler <mail at adrianschmutzler.de>; franken-dev at freifunk.net
Subject: Re: [PATCH v2] fff-gateway: Add sanity checks

 

Hey Adrian, 

On 19.08.19 15:17, Adrian Schmutzler wrote: 
> Hallo, 
> 
> um das nochmal etwas zu spezifizieren, ich würde folgendes machen: 
> 
> config gateway 'meta' 
>       option config_version '1' 
Klingt gut. 
Ich baue aus diesem Vorschlag demnächst eine v3. 

> Ansonsten noch ein Kommentar/Frage: 
> 
>>> +   if ! uci -q get gateway; then 
> 
> Mir war gar nicht bewusst, dass das geht (aber ja, habs getestet). Ich hätte da jetzt ! [ -s "/etc/config/gateway" ] gemacht.

> 
> Da die von mir genannte Variante an diversen Stellen (für andere uci config Files) verwendet wird, würde mich interessieren, was ihr für besser haltet (ist ja auch ein bisschen Speicher vs. Dateisystem).

Vermutlich ist das "uci get" sinnvoller, weil das direkt überprüft, ob es mit uci funktioniert. 

> Zudem frage ich mich, ob die Syntax von Fabian absichtlich oder aus Versehen funktioniert, da sie nichts ins std-out schreibt.

Ein shell-if wertet nicht den Output, sondern den Exitstatus bzw Rückgabewert eines Befehls aus. 
In einer Shell kannst du diesen mit "echo $?" abfragen. (Vorsicht: Geht nur einmal. Bei nächsten mal kriegst du dann natürlich den Exitstatus des zuvor ausgeführten echos)

Ein einfaches Beispiel: 
> ~$ true 
> ~$ echo $? 
> 0 
> ~$ false 
> ~$ echo $? 
> 1 
> ~$ echo $? 
> 0 
Gruß 
Fabian 

 
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20190819/8ca06fbd/attachment.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : openpgp-digital-signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 834 bytes
Beschreibung: nicht verfügbar
URL         : <https://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20190819/8ca06fbd/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev