bash 스크립트에서 현재 연결된 Wi-Fi 네트워크 ssid를 얻고 싶습니다. 내 집 Wi-Fi 네트워크에 연결된 경우 스크립트가 NAS 서버에 백업을 수행하는 백업 스크립트를 작성하려고 합니다. 명령 을 살펴봤지만 ip route
일부 기본 정보만 반환됩니다.
답변1
iwgetid -r
또는
iwgetid wlan0 -r
답변2
다음은 1개의 무선 장치를 사용하여 연결되어 있다고 가정하여 찾고 있는 내용을 제공합니다.
nmcli -t -f ssid dev wifi| cut -d\' -f2
답변3
이 명령은 연결된 무선 어댑터의 SSID를 반환합니다(단 하나만 있다고 가정).
iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/'
또한 터미널에는 경고를 인쇄하지만 stderr에서는 중요하지 않습니다.
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
답변4
NetworkManager-1.8.4를 사용하면 올바른 결과가 생성되었습니다.
LANG=C nmcli -t -f active,ssid dev wifi | grep ^yes | cut -d: -f2-
명령의 모든 부분에는 이유가 있습니다
LANG=C
현지화된 문자열에 grep을 사용하기 때문에 영어를 강제로 사용하기 때문입니다.nmcli ... -f active,ssid ...
활성 상태의 ssid를 양식에 인쇄하게 됩니다.yes:myssid
no:otherssid
grep ^yes
우리는 활성 연결을 필터링하고 싶지만 텍스트가 "yes"인 SSID는 필터링하지 않기를 원합니다.^
cut ... -f2-
구분 기호가 있는 SSID를 가질 수 있도록 첫 번째 구분 기호 뒤에 나머지 줄을 인쇄합니다.