Estoy tratando de ejecutar el script que se encuentra en http://talk.maemo.org/showthread.php?t=70866&page=2 en su hardware previsto, un teléfono Nokia Linux que ejecuta BusyBox ash. La secuencia de comandos recibe el nombre de la red WiFi como parámetro e intenta conectar el teléfono a ella. Sospecho que el script funciona, pero mi SSID, BU (802.1x) , tiene espacio y paréntesis. Entonces, cuando escribo en el símbolo del sistema
autoconnect.sh BU\ \(802.1x\)
Recibo varios errores. Primero,
LIST=`iwconfig wlan0 | awk -F":" '/ESSID/{print $2}'`
if [ $LIST = "\"$1\"" ]; then
... falla, incluso yo estoy conectado a la red. El error no se evita utilizando comillas simples o dobles en lugar de caracteres de escape en el símbolo del sistema.
Segundo,
if [ -z `iwlist wlan0 scan | grep -m 1 -o \"$1\"` ]; then
echo SSID \"$1\" not found;
muestra que grep no encuentra la cadena, aunque el mismo grep, escrito directamente en el símbolo del sistema, encuentra 'BU (802.1x)' .
¿Cómo cotizo $ 1 en las dos circunstancias anteriores para que funcione con mi SSID de red, que contiene espacios y paréntesis?
Gracias.