Wie erhalte ich die SSID des verbundenen WLAN-Netzwerks?

Wie erhalte ich die SSID des verbundenen WLAN-Netzwerks?

Ich möchte die SSID des aktuell verbundenen WLAN-Netzwerks in einem Bash-Skript erhalten. Ich versuche, ein Sicherungsskript zu schreiben, das ein Backup auf einem NAS-Server durchführt, wenn dieser mit meinem WLAN-Heimnetzwerk verbunden ist. Ich habe mir den ip routeBefehl angesehen, aber er gibt nur einige grundlegende Informationen zurück - Bildbeschreibung hier eingeben

Antwort1

iwgetid -r

oder

iwgetid wlan0 -r

Antwort2

Folgendes sollte Ihnen das bieten, wonach Sie suchen, vorausgesetzt, Sie sind über ein drahtloses Gerät verbunden:

nmcli -t -f ssid dev wifi| cut -d\' -f2

Antwort3

Dieser Befehl gibt die SSID des verbundenen WLAN-Adapters zurück (vorausgesetzt, Sie haben nur einen).

iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/'

Es wird auch eine Warnung auf dem Terminal gedruckt, aber auf stderr, also spielt es keine Rolle

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

Antwort4

Mit NetworkManager-1.8.4 führte dies zum richtigen Ergebnis

LANG=C nmcli -t -f active,ssid dev wifi | grep ^yes | cut -d: -f2-

Es gibt einen Grund für jeden Teil des Befehls

  • LANG=Cliegt daran, dass wir grep auf lokalisierten Strings verwenden, also Englisch erzwingen
  • nmcli ... -f active,ssid ...bewirkt, dass SSID mit aktivem Status im Formular gedruckt wirdyes:myssid no:otherssid
  • grep ^yesWir möchten aktive Verbindungen filtern, aber keine SSIDs mit dem Text "ja", also ist das der Grund für^
  • cut ... -f2-druckt den Rest der Zeile nach dem ersten Trennzeichen, so dass wir eine SSID mit Trennzeichen darin haben können

verwandte Informationen