回答:
以下は、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
は私のために動作します。(ラズベリーパイ)
このコマンドは、接続されているワイヤレスアダプターのSSIDを返します(1つしかない場合)。
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を含めることができます