Os itens a seguir devem fornecer o que você está procurando, supondo que esteja conectado usando um dispositivo sem fio:
nmcli -t -f ssid dev wifi| cut -d\' -f2
Eu quero obter as redes Wi-Fi atualmente conectadas ssid em um script bash. Eu estou tentando escrever um script de backup onde o script irá realizar um backup para um servidor NAS se ele estiver conectado à minha rede wifi doméstica. Eu examinei o comando ip route
, mas ele retorna apenas algumas informações básicas -
Os itens a seguir devem fornecer o que você está procurando, supondo que esteja conectado usando um dispositivo sem fio:
nmcli -t -f ssid dev wifi| cut -d\' -f2
iwgetid -r
ou
iwgetid wlan0 -r
Este comando retorna o SSID do adaptador sem fio conectado (supondo que você tenha apenas um).
iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*//'
Também imprime aviso no terminal, mas no stderr, então não importa
remi@host~$id:~$ id=$(iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*//')
eth0 no wireless extensions.
lo no wireless extensions.
virbr0 no wireless extensions.
tap0 no wireless extensions.
remi@host:~$ echo $id
CISPI
Que tal iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'
?
nmcli -t -f NAME connection show --active
-t
Torna a saída 'terse' sem cabeçalhos -f NAME
Mostra apenas o ssid --active
Mostra apenas as conexões ativas Eu tentei isso:
iwconfig wlan0 | grep ESSID | cut -d\" -f2
Com o NetworkManager-1.8.4, isso produziu o resultado correto
LANG=C nmcli -t -f active,ssid dev wifi | grep ^yes | cut -d: -f2-
Existe uma razão para cada parte do comando
LANG=C
é porque estamos usando o grep em uma string localizada, então force english nmcli ... -f active,ssid ...
faz com que o ssid seja impresso com status ativo no formulário yes:myssid
no:otherssid
grep ^yes
queremos filtrar as conexões ativas, mas não os SSIDs com texto "sim", por isso é a razão para ^
cut ... -f2-
imprime o restante da linha após o primeiro separador, para que possamos ter SSID com separador Tags networking wireless connection