- 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