- ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
命令解釋如下:
- grep 'inet' 截取包含ip的行
- grep -v '127.0.0.1' 去掉本地指向的那行
- grep -v inet6 去掉包含inet6的行
- awk '{ print $2}' $2 表示默認以空格分割的第二組 同理 $1表示第一組
- tr -d "addr: 刪除"addr:"這個字符串
輸出結果:
- [root@master]# ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
- 192.168.168.200
在另外一台機器上的輸出結果是:
- [root@master]# ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "add:"
- 10.147.197.32
- 192.168.122.1
192.*.*.* 和 10.*.*.* 這兩個網段是不同的,現在要實現在不同網段的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