2013-11-27 46 views
0

有一個命令'netcfg',它相當於'ifconfig'列出了接口。 的「加上netcfg」命令的輸出是一樣的東西下面如何編輯shell腳本中的linux命令輸出字符串?

lo  up  127.0.0.1/8 0x0000049 23:45:12:11:43:54 
dummy0 DOWN 0.0.0.0  0x0000078 11:22:44:55:21:98 
p2p0  UP  0.0.0.0  0x0000078 11:22:44:55:21:98 
ppp0  UP  192.168.3.4 0x0000054 34:54:88:94:22:FF 

我需要運行在shell腳本的命令「加上netcfg」,需要檢查是否ppp0的接口了。任何人都可以請一些想法如何在Linux的shell腳本中做到這一點? enter image description here

回答

2

netcfg | grep -c -e '^ppp0\s*UP'將打印1並設置$?如果ppp0爲UP,則爲0。將打印0並且將設置$?如果ppp0爲DOWN或不在netcfg輸出中,則爲1。

更新,在Android上工作:

$ adb shell 
[email protected]:/ $ netcfg | grep -c -e '^lo[[:space:]]*UP' 
1 
[email protected]:/ $ 
+0

我更喜歡你的答案。 :) – craiglm

+0

對於腳本,'grep -q'可能比'grep -c'更有用。 – tripleee

+0

我試過終端上的東西,但它總是給出0. –

1
X=`netcfg | grep ppp0 | awk '{print $2}'` 
if [ "$X" == "UP" ]; then 
    echo "ppp0 is UP!" 
fi 
+1

你有一個[沒用使用'grep'(http://partmaps.org/era/unix/award.html#grep)那裏。 'netcfg | awk'/ ppp0/{print $ 2}'' – tripleee

+2

+1學到了東西 – craiglm

+0

或者說'netcfg | awk'/ ppp0/{if($ 2 ==「UP」)print「y」;否則打印「n」; }''。 – devnull

相關問題