nmcliを使用して、接続されているWi-Fiネットワークの信号強度を確認してください。

nmcliを使用して、接続されているWi-Fiネットワークの信号強度を確認してください。

次のコマンドを使用して、すべてのWi-Fiネットワークの信号強度を取得できます。

$ nmcli -t -f SIGNAL device wifi list
$ 77
  67
  60
  59
  55
  45
  44
  39
  39
  37

このリストを現在接続されているWi-Fiにのみ減らしたいです。マニュアルページを見ましたが、必要なフラグが見つかりませんでした。

sed1つの解決策はまたはを使用することですが、awkパイプは使用しないようにします。

nmcli device wifi列を直接解析する代わりにSIGNALを使用する必要がありますか?

答え1

nmcli --version
nmcli tool, version 1.6.2

リンクされたAPからシグナルを受信するには、次を使用します。

nmcli dev wifi list | awk '/\*/{if (NR!=1) {print $7}}'

の2番目の*タグは、nmcli dev wifi list関連付けられたSSIDを識別します。

nmcli --version
nmcli tool, version 1.22.10

使用:

nmcli dev wifi list | awk '/\*/{if (NR!=1) {print $6}}'

答え2

ここでの秘密は、-fパラメータを使用してnmcliスクリプトで必須フィールドを指定することです。 SSIDが重要な場合はこのSSIDフィールドを使用し、どのSSIDに接続するか興味がある場合は、次のIN-USEフィールドを使用してください。

$ nmcli -f IN-USE,SIGNAL device wifi
*  SIGNAL 
   90
*  73     
   40
$ nmcli -f IN-USE,SIGNAL,SSID device wifi
*  SIGNAL  SSID               
   90      wifiWithoutSpaces
*  73      Some Wifi With Spaces
   40      Wifi With a * in its SSID

このようにフィールドをソートすることは、選択信号が行の先頭から固定数の列区切り文字であることです。これで、列計算やnmcliバージョン管理の問題なしにGAD3Rの答えを使用できるようになりました。

$ nmcli -f IN-USE,SIGNAL,SSID device wifi | awk '/^\*/{if (NR!=1) {print $2}}'
73

答え3

接続されているネットワークの名前がわかっている場合は、次のように方法を変更できます。 (nmcli 1.14.6の場合、他のバージョンは異なる場合があります)

nmcli -t -f SSID,SIGNAL dev wifi list | grep "^<network name>:" | cut -d : -f 2

答え4

どのルータを使用しているかを確認する簡単な方法:

nmcli -f IN-USE,SIGNAL device wifi | grep '*'

関連情報