检查无线设备是否启动

问题描述:

我想检查我的无线设备是否正确启动。检查无线设备是否启动

为了做到这一点,我执行以下命令:

ip link show wlan0 

我获得:

6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT  group default qlen 1000 
    link/ether fc:c2:de:2d:f4:c2 brd ff:ff:ff:ff:ff:ff 

当接口并

6: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT group  default qlen 1000 
    link/ether fc:c2:de:2d:f4:c2 brd ff:ff:ff:ff:ff:ff 

当它下跌。

现在,我想测试UP是否存在或不在命令行返回。

我尝试下面的命令:

ip link show mlan0 | awk '/UP/ {print $3}' 

这给:

现在我隔离了,但我不知道如何做到这一步。

同时,我不确定隔离UP是否有用。 基本上,我能执行:

var=`ip link show wlan0 | awk '/UP/ {print $3}'` 
if [ "$var" == "" ];then 
    echo "interface did not up" 
else 
    echo "do something else.." 
fi 

预先感谢

假设你正在使用ip link很可能你是在Linux上。我建议/sys/class层次之一:

$ cat /sys/class/net/wlan0/operstate 
up 
$ cat /sys/class/net/wlan0/carrier 
1 

ip link show输出可能导致你的悲伤,如果格式变化 - 我不认为这是保证保持稳定。


在评论光看来你可能需要管理状态(你告诉的界面做的),而不是它的实际状态 - 无论是实际连接。在这种情况下,你可能会忘记带有标志:

$ cat /sys/class/net/wlan0/flags 
0x1003 # (changes to 0x1002 when running ip link set dev wlan0 down) 
+0

我试过这个解决方案,但我不是了解无线行为。的确,在使用命令ip link set wlan0 up之后,如果我输入ifconfig,我可以将接口wlan0。然而命令cat/sys/class/net/wlan0/operstate仍然返回“down”。如果我将wifi模块连接到接入点,则返回值将更改为up。为什么它不是“以前”?因为我想在命令ip link set wlan0后测试一下。谢谢。 – ogs 2014-12-02 13:24:42

+0

@SnP我编辑了我的答案。 – cnicutar 2014-12-02 13:37:16

+0

@ cnicutar谢谢你的回答! – ogs 2014-12-02 13:53:31