Linux Shell腳本中獲取本機(jī)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í)行此命令一樣道理,返回本機(jī)所有ip信息
- grep inet 截取包含ip的行
- grep -v 127.0.0.1 去掉本地指向的那行
- grep -v inet6 去掉包含inet6的行
- awk { print $2} $2 表示默認(rèn)以空格分割的第二組 同理 $1表示第一組
- tr -d "addr: 刪除"addr:"這個(gè)字符串
多網(wǎng)卡情況
倘若有多個(gè)網(wǎng)卡,可能會(huì)出現(xiàn)多個(gè)不同網(wǎng)段的IP,這個(gè)時(shí)候如果還是執(zhí)行上述命令就會(huì)返回多個(gè)IP,如下:
假設(shè)某個(gè)機(jī)器有192.*.*.8和10.*.*.*網(wǎng)段的IP,現(xiàn)在要實(shí)現(xiàn)不同網(wǎng)段的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 "該網(wǎng)段是10.*.*.*網(wǎng)段"
else
echo "該網(wǎng)段是192.*.*.*網(wǎng)段"
fi
方法二:ip addr
ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'
這里涉及awk命令,暫不展開(kāi)詳講,后面會(huì)專門(mén)有一篇介紹awk命令的文章哦
到此這篇關(guān)于Linux Shell腳本中獲取本機(jī)ip地址方法的文章就介紹到這了,更多相關(guān)Shell獲取本機(jī)ip內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sed使用正則表達(dá)式進(jìn)行替換例子以及注意事項(xiàng)
在使用sed替換時(shí),可以使用正則表達(dá)式分組來(lái)保留部分匹配內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于sed使用正則表達(dá)式進(jìn)行替換例子以及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下2024-03-03
Linux shell實(shí)現(xiàn)每天定時(shí)備份mysql數(shù)據(jù)庫(kù)
這篇文章主要介紹了Linux shell實(shí)現(xiàn)每天定時(shí)備份mysql數(shù)據(jù)庫(kù)的代碼,分享給大家,希望大家能夠喜歡。2015-03-03
shell編程時(shí)出現(xiàn):未預(yù)期的符號(hào)?`then'?附近有語(yǔ)法錯(cuò)誤?或者?:?行?:?`then&
這篇文章主要介紹了shell編程時(shí)出現(xiàn):未預(yù)期的符號(hào)?`then'?附近有語(yǔ)法錯(cuò)誤?或者?:?行?:?`then'問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友參考下2022-12-12
Linux刪除指定字符串內(nèi)容及以前的字符串內(nèi)容\以后的字符串內(nèi)容(最新推薦)
這篇文章主要介紹了Linux刪除指定字符串內(nèi)容及以前的字符串內(nèi)容\以后的字符串內(nèi)容,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02

