I want to obtain the currently connected wifi networks ssid in a bash script. I am trying to write a backup script where the script will perform a backup to a NAS server if it's connected to my home wifi network. I have looked into the ip route command but it only returns some basic information -

Asked
Active
Viewed 2.4k times
11
Chan
- 343
7 Answers
6
The following should provide what you are looking for assuming you are connected using 1 wireless device:
nmcli -t -f ssid dev wifi| cut -d\' -f2
Luis Alvarado
- 216,643
2
With NetworkManager-1.8.4, this produced the correct result
LANG=C nmcli -t -f active,ssid dev wifi | grep ^yes | cut -d: -f2-
There is a reason for every part of the command
LANG=Cis because we are using grep on localized string so force englishnmcli ... -f active,ssid ...causes to print ssid with active status in formyes:myssidno:otherssidgrep ^yeswe want to filter active connections, but not SSIDs with text "yes" so it is the reason for^cut ... -f2-prints the rest of the line after the first separator so we can have SSID with separator in it
j123b567
- 176
- 5
2
This command returns the SSID of the connected wireless adapter (assuming you only have one).
iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/'
It also print warning on the terminal but on stderr so it doesn't matter
remi@host~$id:~$ id=$(iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/')
eth0 no wireless extensions.
lo no wireless extensions.
virbr0 no wireless extensions.
tap0 no wireless extensions.
remi@host:~$ echo $id
CISPI
Rémi
- 955
0
nmcli -t -f NAME connection show --active
-tMakes the output 'terse' so no headers-f NAMEShows only the ssid--activeShows only the active connections
muru
- 207,228
John Mehorter
- 11
- 1