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: