![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 andyto202 ![]()
![]() |
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 |
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樓 |
或許可以考慮直接用 shell script 做吧?
ssh 192.168.213.128 ifconfig | grep "inet addr" | tr ":" " " | awk '{print $3}'
本篇文章回覆於2016-12-03 23:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |