[fli4l] Wo liegt die Information, welche Geräte mit fli4l verbunden sind?

Thomas Grunenberg tho_gru at gmx.de
So Jan 15 11:06:11 CET 2017


Am 15.01.2017 um 09:17 schrieb K. Dreier:
> Hallo Thomas,
>
> puh... kann nicht sagen, daß ich das schon kapiert habe. Aber Danke
> trotzdem, ist sicherlich ein guter Anfang. Ich versuche mich mal und
> habe natürlich noch einige Fragen:
>
>> #! /bin/sh
>>
>> set -x  # uncomment to see the executed statements
Wenn das Script fertig ist, musst Du diese Zeile mittels "#" Zeichen am 
Anfang in einen Kommentar verwandeln.
>> set -u          # use of undefined variables will cause error
>> message
>>
>> test_on_condition () {
>>          return 1        # false
>> }
> Wo ist denn definiert, was die on_condition _ist_ bzw sein muß?
Das ist hier nicht definiert. Du musst das selbst machen, Deinen 
wünschen entsprechend. Das ist nur ein Beispiel, um zu zeigen, wie TRUE 
oder FALSE zurück in die Schleife gegeben werden...
>
>> test_off_condition () {
>>          a=1
> Ist das "a" eine Variable?
>
>>          if test -f /etc/passwd; then
>>                  a=1
>>          fi
>>          b=0
>>          return ${a} \& ${b}     # 0 = true
>> }
> Den Teil verstehe ich nicht. Ich muß ja nach etwas suchen in
> /var/run/arping.stat/ und dort nach z.B. "geraet1.online". Käme das bei
> "if test..." rein statt /etc/passwd? Das "test" testet ob etwas
> vorhanden ist als Datei?
"test -f" testet die Existenz einer Datei. Mit den "test" Befehl kannst 
Du viele verschiedene Dinge testen. In Deinem Fall muss natürlich der 
Dateiname angepasst werden.
> "then a=1" bedeutet, daß wenn die Datei vorhanden ist, dann wird "a"
> auf "1" gesetzt, richtig?
Richtig erkannt: "a" ist eine Variable.
> Wo kommt das "b" her?
Die Variable b wird genau an dieser Stelle definiert damit beim 
folgenden "return" kein Fehler passiert.
> Was genau macht die "return" Zeile? Gibt die den Inhalt von a oder b
> aus? Fragt also ab, ob 0 oder 1?
Mittels ${<Variable>} (in diesem Beispiel ${a} und ${b}) wird der Inhalt 
der variablen "a" und "b" genutzt, mittels UND verknüpft und weil es 
hinter "return" steht an den Aufrufer zurückgegeben.

>
>> execute_on_commands () {
>>          echo "execute_on_commands"
>> }
> Das execute_on_commands in "" müsste ich durch z.B. ein weiteres Skript
> ersetzen? Z.B eines, welches ein Kommando an die WLAN-Dose schickt.
> Wäre das dann einfach
> echo "/usr/bin/einweiteresskript.sh" ? Oder wie müsste das ausschauen?
"echo" gibt nur eine Zeichenkette an der Console aus. Hier müsstest Du 
Deine Scripte aufrufen oder sonstige Befehle ausführen, die das Schalten 
Deiner Steckdose übernehmen.
>
>> execute_off_commands () {
>>          echo "execute_off_commands"
>> }
>>
>> while true; do
>>
>>          sleep 2
>>
>>          if test_off_condition; then
>>                  execute_off_commands
>>                  continue
>>          fi
>>
>>          if test_on_condition; then
>>                  execute_on_commands
>>                  continue
>>          fi
>>
>> done
>>
>> echo "END"
>
> Ok, der letzte Teil ist wohl klar.
>
> Vielen Dank für Deine Hilfe!
>
> Gruß
> Klaus
>
Gerne
Thomas



Mehr Informationen über die Mailingliste Fli4L