2015-04-01 81 views
0

我正在嘗試編寫一個腳本,該腳本用awk命令收集網絡信息。使用Shell腳本打印出IP地址,MAC地址和默認網關

ifconfig enp0s3| grep "inet " | awk '{gsub("addr:","",$2); print $2 }' 

這是我最終得到得到我的IP地址的命令,但我還沒有想通了,我怎麼能寫一個腳本在那裏我能得到這樣的輸出:

IP Address : 10.0.2.15 

我試圖

echo" IP Address:"$ ifconfig enp0s3| grep "inet " | awk '{gsub("addr:","",$2); print $2 }' 

,但我不斷收到錯誤。

+1

你需要一個命令替換('$(...)')嵌入從輸出命令:「echo」IP地址:$(ifconfig enp0s3 | grep「inet」| awk'{gsub(「addr:」,「」,$ 2); print $ 2}')「'。 – mklement0 2015-04-01 19:43:13

回答

0

您可以使用以下awk命令在單次運行中獲取IP地址和MAC地址。但是,默認網關通過ifconfig不可用:

ifconfig eth0 \ 
    | awk -F'(*|:)' '{printf "IP Address: %s\nMAC Address: %s\n",$16,$7":"$8":"$9":"$10":"$11":"$12}' RS='\n\n' 

輸出:

IP Address: 10.0.2.15 
MAC Address: 00:23:12:f2:56:6d