在工作中,如果我们需要用到获取当前ip的最后一位值,比如10.20.30.40,需要使用40的值,可以使用如下命令获取:
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6
上述命令是筛选出ip不是127.0.0.1和不是inet6开头的地址,剩下的一行是
inet 10.20.30.40 netmask 255.255.255.1 broadcast 10.60.70.80
然后获取第二列的值,即
10.20.30.40
脚本如下
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'
然后将ip以 . 作为分割,之后取第四位,脚本如下
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|cut -d'.' -f4
至此,就输出40的结果,如果想要使用这个40的结果,只需要将上述结果设置为一个变量即可
ipSuffix=$(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|cut -d'.' -f4)
实际的生产环境中,可能是多网卡的,使用上述命令并不能获取到ip的最后一位,如果执行上述命令后,有2个值,那就是多网卡,一般多网卡的网段都不一样
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
例如执行如上命令的结果是
10.20.30.40
10.118.117.116
那么我们就可以给 10.118 开头的ip去除掉。
最终的脚本为
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v 10.118|grep -v inet6|awk '{print $2}'|tr -d "addr:"|cut -d'.' -f4