Estou tentando executar o script listado em http://talk.maemo.org/showthread.php?t=70866&page=2 em seu hardware pretendido, um telefone Nokia Linux executando o BusyBox ash. O script recebe o nome da rede WiFi como um parâmetro e tenta conectar o telefone a ele. Eu suspeito que o script funciona, mas meu SSID, BU (802.1x) , tem espaço e parênteses nele. Então, quando eu digito no prompt de comando
autoconnect.sh BU\ \(802.1x\)
Eu recebo vários erros. Primeiro,
LIST=`iwconfig wlan0 | awk -F":" '/ESSID/{print $2}'`
if [ $LIST = "\"$1\"" ]; then
... falha, até eu estou conectado à rede. O erro não é evitado usando aspas simples ou duplas em vez de caracteres de escape no prompt de comando.
Segundo,
if [ -z `iwlist wlan0 scan | grep -m 1 -o \"$1\"` ]; then
echo SSID \"$1\" not found;
mostra que o grep não encontra a string, embora o mesmo grep, digitado diretamente no prompt de comando, encontre 'BU (802.1x)' .
Como cito US $ 1 nas duas circunstâncias acima, para que funcione com o SSID da minha rede, contendo espaços e parênteses?
Obrigado.