Linux Shell腳本中獲取本機ip地址方法
方法一:ifconfig -a
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
命令解析
- ifconfig -a 和window下執(zhí)行此命令一樣道理,返回本機所有ip信息
- grep inet 截取包含ip的行
- grep -v 127.0.0.1 去掉本地指向的那行
- grep -v inet6 去掉包含inet6的行
- awk { print $2} $2 表示默認以空格分割的第二組 同理 $1表示第一組
- tr -d "addr: 刪除"addr:"這個字符串
多網卡情況
倘若有多個網卡,可能會出現多個不同網段的IP,這個時候如果還是執(zhí)行上述命令就會返回多個IP,如下:
假設某個機器有192.*.*.8和10.*.*.*網段的IP,現在要實現不同網段的IP地址打印不同的輸出,shell腳本如下
#!/bin/sh ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"` echo $ip if[[ $ip =="10."*]] then echo "該網段是10.*.*.*網段" else echo "該網段是192.*.*.*網段" fi
方法二:ip addr
ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'
這里涉及awk命令,暫不展開詳講,后面會專門有一篇介紹awk命令的文章哦
到此這篇關于Linux Shell腳本中獲取本機ip地址方法的文章就介紹到這了,更多相關Shell獲取本機ip內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Linux命令ifconfig報錯command not found的解決方法
最近在安裝Vmware CentOS,輸入ifconfig查看VM的IP地址,提示command not found,發(fā)現沒安裝命令包,此篇文章記錄整個問題解決方法,有和小編遇到一樣的問題的小伙伴可以參考閱讀本文2023-08-08Linux在shell中自動生成1到100的數組方法(兩種方法)
之前自己在寫shell腳本的時候,需要自動創(chuàng)建1-100的文本確不知道該如何去創(chuàng)建。今天小編給大家分享兩種方法,需要的朋友參考下2017-02-02用expect實現ssh自動登錄服務器并進行批量管理的實現方法
這篇文章主要介紹用expect實現ssh自動登錄服務器并進行批量管理的實現方法,需要的朋友可以參考下2013-02-02