Forum: PC-Programmierung Unterstützung bei Shellscript benötigt (Anrdoid)


von Frank (Gast)


Lesenswert?

Das Shellkommando "scan_results" (es geh tum WLANs) liefert z.B. die 
Ergebniszeilen:

bssid  frequency  signal level  flags  ssid
00:16:38:e6:38:31       2412    -49     [WPA2-PSK-TKIP+CCMP]    Sven-Ola
00:16:38:e6:38:31       2412    -50     [WPA2-PSK-TKIP+CCMP]    Sven-Ola
02:ca:ff:ee:ba:be       2457    -40     [IBSS] 
olsr.freifunk.net

Ich benötige dringend Hilfe dahingehend, dass ich mit einer Schleife 
durch das Ergebnis kraulen muss und im Falle, dass der Wert "ssid" einer 
Zeile einer Variablen $my_ssid entspricht ich unbedingt auf die variable 
$my_bssid den Wert von bssid zugewiesen bekommen muss. ALsi eine 
Stringoperation, irgendwas mit "split" oder so ... bekomme es nicht hin.

Ich bin schon soweit:

for lin in 'scan_results'; do

 $my_ssid= irgendwas von $lin
 $my_bssid= irgendwas von $lin

 if ($my_ssid=='olsr.freifunk.net')
  then set_network 2 bssid $my_bssid
 fi
done

Mit fehlen genau die beiden Zeilen mit "irgendwas" - kann mir 
volkommenem Shell-Analfabeten bitte mal jemand helfen? Evtl. gibts noch 
andere Syntax-Fehler. Danke.

von Frank (Gast)


Lesenswert?

Nachtrag: Es geht darum, dass jemand unbedingt ein Symbian-Handy als 
Hotspot für ein Android-Tablet nehmen will. Android und AdHoc-Netzwerk 
ist aber problematisch. Mit dem Script:

http://www.android-hilfe.de/root-hacking-modding-fuer-samsung-galaxy/6522-ad-hoc-wifi.html#post64525

Geht es. Das Dumme ist nur, dass zwar der Netzwerkname (SSID) konstant 
bleibt, sich aber nach jedem Neustart von JoikuSpot (die 
Netzwerksoftware auf dem Handy) sich die BSSID ändert. Da diese im 
Script auf dem Tablet aber gebraucht wird, ist das irgendwie 
unpraktikabel ...

von Konrad S. (maybee)


Lesenswert?

Solange die Spaltenwerte immer besetzt sind und keine Leerzeichen 
enthalten:
1
#!/bin/sh
2
scan_results | while read bssid frequency signal level flags ssid
3
do
4
  if [ "$ssid" = olsr.freifunk.net ]
5
  then
6
    set_network 2 bssid $bssid
7
  fi
8
done

von Lisa (Gast)


Lesenswert?

Hi

Ich würds so machen
1
#!/bin/sh
2
cat example | grep -E "olsr.freifunk.net" | cut -d ' ' -f1

der Befehl "cat example" müsstest du bei dir durch "scan_results" 
ersetzen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.