11

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 - enter image description here

Chan
  • 343
  • 1
  • 3
  • 13

7 Answers7

21
iwgetid -r

or

iwgetid wlan0 -r
Seth
  • 57,282
  • 43
  • 144
  • 200
nmset
  • 211
  • 2
  • 2
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
  • 209,003
  • 167
  • 543
  • 707
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
  • 945
  • 8
  • 15
1

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=C is because we are using grep on localized string so force english
  • nmcli ... -f active,ssid ... causes to print ssid with active status in form yes:myssid no:otherssid
  • grep ^yes we 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
  • 166
  • 5
1

How 'bout iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'?

jdthood
  • 12,287
  • 2
  • 48
  • 66
0
nmcli -t -f NAME connection show --active
  • -t Makes the output 'terse' so no headers
  • -f NAME Shows only the ssid
  • --active Shows only the active connections
muru
  • 193,181
  • 53
  • 473
  • 722
  • This prints the NAME of connection and not the SSID. NAME usually corresponds with SSID but it is not always true. NAME of NetworkManager connection can be changed to any random value. – j123b567 Jun 06 '18 at 15:36
0

I tried this:

    iwconfig wlan0 | grep ESSID | cut -d\" -f2
John Goofy
  • 183
  • 1
  • 8