2014-12-02 146 views
1

我想檢查我的無線設備是否正確啓動。檢查無線設備是否啓動

爲了做到這一點,我執行以下命令:

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 

預先感謝

回答

3

假設你正在使用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