[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