연결된 Wi-Fi 네트워크 SSID를 얻는 방법은 무엇입니까?

연결된 Wi-Fi 네트워크 SSID를 얻는 방법은 무엇입니까?

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를 가질 수 있도록 첫 번째 구분 기호 뒤에 나머지 줄을 인쇄합니다.

관련 정보