Chcę uzyskać aktualnie podłączone sieci WiFi SSID w skrypcie bash. Próbuję napisać skrypt kopii zapasowej, w którym skrypt wykona kopię zapasową na serwerze NAS, jeśli jest podłączony do mojej domowej sieci Wi-Fi. Zajrzałem do ip route
polecenia, ale zwraca ono tylko podstawowe informacje -
8
nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2
.lub
źródło
sudo iwgetid -r
działa dla mnie. (raspberry pi)To polecenie zwraca identyfikator SSID podłączonego adaptera bezprzewodowego (zakładając, że masz tylko jeden).
Wyświetla również ostrzeżenie na terminalu, ale na stderr, więc nie ma to znaczenia
źródło
Jak leci
iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'
?źródło
-t
Sprawia, że wyjście jest „zwięzłe”, więc nie ma nagłówków-f NAME
Pokazuje tylko SSID--active
Pokazuje tylko aktywne połączeniaźródło
Próbowałem tego:
źródło
W przypadku NetworkManager-1.8.4 uzyskano poprawny wynik
Istnieje powód dla każdej części polecenia
LANG=C
to dlatego, że używamy grep na zlokalizowanym ciągu, więc wymuś angielskinmcli ... -f active,ssid ...
powoduje wydrukowanie ssid z aktywnym statusem w formieyes:myssid
no:otherssid
grep ^yes
chcemy filtrować aktywne połączenia, ale nie identyfikatory SSID z tekstem „tak”, więc to jest powód^
cut ... -f2-
drukuje resztę wiersza po pierwszym separatorze, abyśmy mogli mieć SSID z separatorem w nimźródło