我想使用以下命令行来获取当前的Wi-Fi频道。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
我想使用这个命令,因为我可能正在使用结果的更多部分。 所以我需要AppleScript只返回命令的当前Wi-Fi通道。
我很感谢任何帮助。 :)
我想使用以下命令行来获取当前的Wi-Fi频道。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
我想使用这个命令,因为我可能正在使用结果的更多部分。 所以我需要AppleScript只返回命令的当前Wi-Fi通道。
我很感谢任何帮助。 :)
Answers:
以下是使用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
我收到了一个错误。我认为问题是返回前没有逗号。
我建议使用“ grep的 “和” AWK “来自bash的命令。您可以使用它们来解析bash中给出的数据。以下是使用您在上面描述的详细信息的示例。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep "channel" | awk '{print $2}'
帮自己一个忙,sym将二进制文件链接到/ usr / local / bin,这样你就可以输入机场(或编写脚本)
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
和 awk
? airport -I | awk '/channel/{print $2}'
$2
?