Como se conectar a uma rede Wi-Fi com uma aspa simples no SSID a partir da linha de comando

0

Como posso me conectar a uma rede Wi-Fi que tenha uma aspa simples no SSID a partir da linha de comando em um Raspberry Pi?

Este é o método que estou usando:

wpa_cli add_network
wpa_cli set_network 0 ssid '"Your SSID"'
wpa_cli set_network 0 psk '"1234567890"'

Isso funcionará a menos que haja uma única citação no SSID. Nesse caso, parece entrar em modo interativo, mas você não pode usá-lo.

wpa_cli set_network 0 ssid '"Your ' SSID"'
>

Eu tentei escapar, mas isso não faz diferença.

wpa_cli set_network 0 ssid '"Your \' SSID"'
>

Ele funcionará no modo interativo, mas na verdade estou tentando fazer isso com o Node.js usando o pacote wireless-tools.

Este é o meu ambiente:

lsb_release -a
Raspbian GNU/Linux 9.4 (stretch)

uname -a
Linux raspberrypi 4.9.59-v7+

wpa_cli -v
wpa_cli v2.4

$SHELL -version
GNU bash, version 4.4.12(1)-release (arm-unknown-linux-gnueabihf)
    
por JDavis 29.05.2018 / 21:13

2 respostas

2

Existem provavelmente formas melhores, mas de acordo com esta resposta do StackOverflow, a substituição de ' por '"'"' deve ser isso.

A explicação completa está disponível nessa resposta, mas a essência dela é que o shell interpreta strings que são adjacentes sem espaço em branco entre elas como um único parâmetro. Nesse caso, ele está dividindo efetivamente o ssid em três strings ( '"Your ' , "'" e ' SSID"' ) e, em seguida, combinando-os.

    
por 29.05.2018 / 21:38
1

Sim, uma string entre aspas simples não pode conter aspas simples. No entanto, com o bash, há um terceiro tipo de citação: citações ANSI-C

$ ssid=$'"Your \' SSID"'
$ echo "$ssid"
"Your ' SSID"
    
por 29.05.2018 / 22:23