Я хочу получить ssid в настоящее время подключенных сетей Wi-Fi в сценарии bash. Я пытаюсь написать скрипт резервного копирования, где он будет выполнять резервное копирование на сервер NAS, если он подключен к моей домашней сети Wi-Fi. Я посмотрел на ip route
команду, но она только возвращает некоторую основную информацию -
8
nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2
.или
источник
sudo iwgetid -r
у меня работает. (Raspberry Pi)Эта команда возвращает SSID подключенного беспроводного адаптера (при условии, что у вас есть только один).
Он также выводит предупреждение на терминал, но на stderr, так что это не имеет значения
источник
Как насчет
iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'
?источник
-t
Делает вывод "кратким", поэтому заголовки отсутствуют-f NAME
Показывает только ssid--active
Показывает только активные соединенияисточник
Я попробовал это:
источник
С NetworkManager-1.8.4 это дало правильный результат
Есть причина для каждой части команды
LANG=C
потому что мы используем grep для локализованной строки, поэтому форсируем английскийnmcli ... -f active,ssid ...
вызывает печать ssid с активным статусом в формеyes:myssid
no:otherssid
grep ^yes
мы хотим фильтровать активные соединения, но не идентификаторы SSID с текстом «да», поэтому это является причиной^
cut ... -f2-
печатает остаток строки после первого разделителя, чтобы мы могли иметь SSID с разделителем в немисточник