Answers:
假设您使用1个无线设备连接,则以下内容应提供所需的内容:
nmcli -t -f ssid dev wifi| cut -d\' -f2
nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2
。
iwgetid -r
要么
iwgetid wlan0 -r
sudo iwgetid -r
为我工作。(raspberry pi)
此命令返回所连接的无线适配器的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
使用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