現在のWi-Fiチャネルを取得するには、次のコマンドラインを使用します。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
結果のより多くの部分を使用している可能性があるため、このコマンドを正確に使用したいと思います。そのため、コマンドの現在のWi-Fiチャネルのみを返すAppleScriptが必要です。
私はどんな助けにも感謝しています。:)
現在のWi-Fiチャネルを取得するには、次のコマンドラインを使用します。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
結果のより多くの部分を使用している可能性があるため、このコマンドを正確に使用したいと思います。そのため、コマンドの現在のWi-Fiチャネルのみを返すAppleScriptが必要です。
私はどんな助けにも感謝しています。:)
回答:
tron_jonesの答えを使用したAppleScriptの例を次に示します。
コマンドの結果はに設定され_channel
、結果を表示するためだけにダイアログボックスで使用されます。明らかに_channel
さまざまな方法で使用できます。
set _channel to do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep 'channel:' | awk '{print $2}'"
display dialog "Wi-Fi is using Channel: " & _channel
注:の完全修飾パス名grep
または指定awk
する必要がある場合があります。また、前後の二重引用符grep "channel:"
は単一引用符に置き換えられたため、コマンド内の単一引用符のためにコンパイルするために、コマンドを二重引用符でカプセル化できましたawk
。
ところで、コマンドは、アスタリスク(*
)を使用して次のように縮小し、コマンドへの書き込みパスを短縮できますairport
。
set _channel to do shell script "/S*/L*/P*/A*/V*/C*/R*/airport -I | grep 'channel:' | awk '{print $2}'"
bmikeのおかげでコマンドラインをさらに短くするには、ターミナルで次のコマンドを使用してシンボリックリンクを作成します。
sudo ln -s "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" "/usr/local/bin/airport"
次に、ターミナルの例として、必要なことは次のように入力するだけです: airport -I
または、前の例を使用したAppleScriptコマンドで:
set _channel to do shell script "airport -I | grep 'channel:' | awk '{print $2}'"
awk
。 .../airport -I | grep "channel:"
出力しchannel: 11
、それをパイプしawk
、そのまま " 11
" を出力します$2
。awk '{print $1}'
結果が「channel:
」だったと言った場合 。
as list
エラーが発生します。問題は、戻る前にコンマがないことだと思います。
bashから" grep "および " awk "コマンドを使用することをお勧めします。これらを使用して、bashで指定されたデータを解析できます。上記の詳細を使用した例を次に示します。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep "channel" | awk '{print $2}'
自分でお願いし、バイナリを/ usr / local / binにsymリンクして、airportを入力(またはスクリプト)できるようにします
airport -I | grep "channel" | awk '{print $2}'
/user/local/bin
ますか?新しいターミナルウィンドウでは機能しません。
sudo ln -s "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" "/usr/local/bin/airport"
次に、例として、入力する必要があるのは次のairport -I
grep
and を使用しawk
ますか? airport -I | awk '/channel/{print $2}'
$2
ですか?