Je veux obtenir le ssid des réseaux wifi actuellement connectés dans un script bash. J'essaie d'écrire un script de sauvegarde où le script effectuera une sauvegarde sur un serveur NAS s'il est connecté à mon réseau wifi domestique. J'ai examiné la ip route
commande mais elle ne renvoie que des informations de base -
8
nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2
.ou
la source
sudo iwgetid -r
fonctionne pour moi. (framboise pi)Cette commande renvoie le SSID de l'adaptateur sans fil connecté (en supposant que vous n'en avez qu'un).
Il affiche également un avertissement sur le terminal, mais sur stderr, donc cela n'a pas d'importance
la source
Et pourquoi
iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'
?la source
-t
Rend la sortie `` concise '', donc aucun en-tête-f NAME
Affiche uniquement le ssid--active
Affiche uniquement les connexions activesla source
J'ai essayé ceci:
la source
Avec NetworkManager-1.8.4, cela a produit le résultat correct
Il y a une raison pour chaque partie de la commande
LANG=C
est parce que nous utilisons grep sur une chaîne localisée afin de forcer l'anglaisnmcli ... -f active,ssid ...
fait imprimer le ssid avec le statut actif dans le formulaireyes:myssid
no:otherssid
grep ^yes
nous voulons filtrer les connexions actives, mais pas les SSID avec le texte "oui", c'est donc la raison de^
cut ... -f2-
imprime le reste de la ligne après le premier séparateur afin que nous puissions avoir un SSID avec un séparateur dedansla source