對於bash集成,我需要從接口中檢索默認網關。查找網關的接口
這裏是命令路徑的輸出-n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 p.p.p.p 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 x.x.x.x 0.0.0.0 UG 100 0 0 eth0
10.43.0.1 10.43.0.5 255.255.255.255 UGH 0 0 0 tun0
10.43.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
y.y.y.y x.x.x.x 255.255.255.255 UGH 0 0 0 eth0
x.x.x.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
128.0.0.0 10.43.0.5 128.0.0.0 UG 0 0 0 tun0
我試圖捕捉網關(PASSERELLE法文)爲IFACE TUN0。
此正則表達式正在Rubular:
^[0\.]+\s+([\w\.]+)\s+.*UG.*tun0$
但這shell命令不起作用(無輸出):
route -n |egrep -oh '^[0\.]+\s+([\w\.]+)\s+.*UG.*tun0$'
請告訴我爲什麼?
沒有「接口的默認路由」這樣的事情。默認路由是在內核路由表中的任何其他路由不能用於告知分組目的地時採用的路由。換句話說,對於所有接口,只能有一個[默認路由或網關](http://en.wikipedia.org/wiki/Default_gateway) – mvp