1 (edytowany przez hugo999 2015-07-11 20:08:40)

Temat: #!/bin/sh skrypt

Witam `stworzyłem` taki skrypt, ale nie wiem czy działa, i proszę o "naprawienie" w pewny sposób. Ogólnie jego założeniem jest sprawdzanie ilości klientów podłączonych pod WiFi, jeżeli klientów > 1 to włącza usługę, a w przeciwnym wypadku wyłącza. Zależy mi na tym też aby skrypt wykonywał się w pętli sprawdzanie np. co 30 sekund aby nie floodować pamięci (pętla while i delay? lub wait?), oraz żeby skrypt wykonywał się przy starcie routera. Na razie mam takie coś. Dodam, że to pierwsze spotkanie z tym językiem programowania.

#!/bin/sh
    while [ true ] ; do
    CONNECT=$(iw dev wlan0 station dump | grep Station | wc -l)
    if [ $CONNECT > 1 ] ; then
      on
    else
      off
    fi
    wait 5
  done

Pozdrawiam

2

Odp: #!/bin/sh skrypt

if [ $CONNECT -gt 1 ] ; then

> to przekierowanie, jak chcesz porównywać to w shellu musisz powiedzieć że to ma być porównanie -  znak musisz "wyeskejpować" czyli napisać \>. Ale... w shellu znak > służy to porównywania ciągów tekstowych, jak masz liczby to właściwym operatorem jest -gt (greather than - większe niż)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez hugo999 2015-07-11 20:25:20)

Odp: #!/bin/sh skrypt

Cezary napisał/a:
if [ $CONNECT -gt 1 ] ; then

> to przekierowanie, jak chcesz porównywać to w shellu musisz powiedzieć że to ma być porównanie -  znak musisz "wyeskejpować" czyli napisać \>. Ale... w shellu znak > służy to porównywania ciągów tekstowych, jak masz liczby to właściwym operatorem jest -gt (greather than - większe niż)

Dzięki wielkie, zastanawia mnie ten wait, jeżeli sobie użyłem do wywołania tekstu komendy printf, a jest na końcu pętli wait 5, to i tak tekst leci jak szalony bez tego odstępu czasowego, coś pominąłem?

Aaaa, zamiast wait, powinno być sleep. Dzięki jeszcze raz.

4

Odp: #!/bin/sh skrypt

sleep 5 nie wait 5. Trochę zbędna ta pętla, dodaj sobie wywołanie skryptu co minutę do crona.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: #!/bin/sh skrypt

Cezary napisał/a:

sleep 5 nie wait 5. Trochę zbędna ta pętla, dodaj sobie wywołanie skryptu co minutę do crona.

Właśnie przeczytałem o tym sleep. W sumie lepiej do tego crona. Dzięki wielkie.