[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: [BASH] selezionare rete wireless da shell



nel pensarci e provarci mi sono fatto prendere la mano e l'ho quasi completato (diciamo fino al punto 6 )XD 
metto il listato completo a fine email, sperando che sia di gradimento ;)
nel mio caso parto già dall'output di iwlist scan


#!/bin/sh

# nel file list c'è la lista degli ESSID, con ancora le virgolette 
cat iwscan | awk '/ESSID/ {print $1}' | sed -e "s/ESSID:"$1"/$1/g"> list

LIST=`cat list`
HOW_MUCH=`cat iwscan | grep Cell | wc -l`

# contatore per il ciclo
INT=1

echo -n "A quale rete vuoi provare a collegarti?"
echo

# da uno a quante reti ho trovato
while [ $INT -le $HOW_MUCH ]
do

# prendi il nome di rete e mostralo
        NOME_RETE=`cat list | head -n $INT | tail -n 1 | sed -e 's/"\([^"]*\)"/\1/g'`
        echo $INT - $NOME_RETE

        # dopo la scelta serve nuovamente il riferimento al nome, ho fatto
        # attraverso un unico file di testo che già ho
        #cat iwscan | grep -A 9 -B 1 $NOME_RETE> $NOME_RETE

        # incremento per il while
        : $((INT=$INT+1))
done
read RETE

# controlla i limiti di scelta
if [ "$RETE" -lt "1" ] || [ "$RETE" -gt "$INT" ]
thenecho $ESSID
        echo "Errore, uscita"
        exit 1
fi

# scelto un numero memorizzo il modo
MODE=`cat iwscan | grep -A 10 "Cell 0$RETE" | grep Mode | sed -e 's/Mode\:\([^\:]*\)/\1/g'`

# memorizzo il canale
CHANNEL=`cat iwscan | grep -A 10 "Cell 0$RETE" | awk '/Channel:/ {print $0}' | sed -e 's/Channel\:\([^\:]*\)/\1/g'`

# memorizzo l'essid
ESSID=`cat iwscan | grep -A 10 "Cell 0$RETE" | grep ESSID | sed -e 's/ESSID:"\([^"]*\)"/\1/g'`


per info sul sed e su come ho eliminato le " e i : vedi 
http://www.gentoo.org/doc/it/articles/l-sed2.xml
oltre alla già citata guida per BASH.


Ciao!
_________________________________________________________________
Divertiti con le nuove EMOTICON per Messenger!
http://intrattenimento.it.msn.com/emoticon 

Reply to: