台灣最大程式設計社群網站
線上人數
1085
 
會員總數:239109
討論主題:185541
歡迎您免費加入會員
討論區列表 >> Java >> 【有人可以幫忙測試一下 JAVA Expect 嗎???】
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
【有人可以幫忙測試一下 JAVA Expect 嗎???】
價值 : 500 QP  點閱數:502 回應數:4

樓主

andyto202
初學者
362 65
3846 224
發送站內信

我有用一個套件
ExpectIt
https://github.com/Alexey1Gavrilov/ExpectIt
我主要是要用在維護網路設備
因為家裡沒有設備可以測試
所以我在家用虛擬電腦灌 ubuntu
再從實機(windows)連進去測試
我的程式碼如下


執行結果如下

----------------------------------------------------------------------------------------
andyto202@ubuntu:~$ ifconfig
ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:f4:27:0c
inet addr:192.168.213.128 Bcast:192.168.213.255 Mask:255.255.255.0
inet6 addr: fe80::1ec9:ab94:33d:6c55/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4878 errors:0 dropped:0 overruns:0 frame:0
TX packets:2000 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6713349 (6.7 MB) TX bytes:127984 (127.9 KB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:299 errors:0 dropped:0 overruns:0 frame:0
TX packets:299 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:23390 (23.3 KB) TX bytes:23390 (23.3 KB)

andyto202@ubuntu:~$ exit
----------------------------------------------------------------------------------------


但是我不想要列出所有的結果
如果我只要列出

192.168.213.128
192.168.213.255
255.255.255.0

請問該怎麼做呢??
謝謝



搜尋相關Tags的文章: [ Java Expect ] ,
本篇文章發表於2016-07-03 17:38
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

香帥
檢舉此回應
請參考
http://jashliao.pixnet.net/blog/post/163736147-%E6%AF%8F%E5%A4%A9%E4%B8%80%E5%80%8Blinux%E6%8C%87%E4%BB%A4--ifconfig%E6%8C%87%E4%BB%A4(%E5%8F%96%E5%BE%97%E7%B6%B2%E8%B7%AF%E5%8D%A1%E7%8B%80
秀那麼多是 ifconfig 本身功能,可能無法單純顯示您要的那三個網址。
expect 是等待對方回應"某字串",然後再送給對方"某字串"
您秀的都有正常回應。
本篇文章回覆於2016-07-03 21:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

andyto202
檢舉此回應
謝謝香帥大(救星來了)
我這個只是範例
我進網路設備下的指令可能有十幾、二十個
您說的那個答案或許可以解決我說的那個
ifconfig
我比較想知道的事
當沒辦法靠指令後面的參數時
我要如何再搭配 regular expression
去找到我要的結果
謝謝
^_^

我有查有關 java 的 regular expression


執行結果如下
192.168.213.128
192.168.213.255
255.255.255.0

不過上面我只有抓 ifconfig 的其中一行出來當字串來測試正規表示式
如果要套到我問的那個範例

就是想從一堆結果中抓出我想要的字串出來
請問要怎麼做呢???
本篇文章回覆於2016-07-03 22:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

香帥
檢舉此回應
你要對你的系統熟悉,知道他會產生什麼,才能改為自動化
以你前面的例子,因為字串很長,建議尋找前導字元,切斷長字串後再處理。
以一樓長字串來說
inet addr: 是用來判斷及尋找的前導字元,若有多張網路卡,你要自己判斷是要抓到第幾個,然後將他切斷擷取,
再將那切斷後的字串套入您二樓的方法,就可以解開答案。

本篇文章回覆於2016-07-03 23:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

etman
檢舉此回應
或許可以考慮直接用 shell script 做吧?
ssh 192.168.213.128 ifconfig | grep "inet addr" | tr ":" " " | awk '{print $3}'
本篇文章回覆於2016-12-03 23:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.