小编给大家分享一下Linux Shell脚本中如何获取本机ip地址,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
方法一:ifconfig -a
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
命令解析
ifconfig -a 和window下执行此命令一样道理,返回本机所有ip信息
grep inet 截取包含ip的行
grep -v 127.0.0.1 去掉本地指向的那行
grep -v inet6 去掉包含inet6的行
awk { print $2} $2 表示默认以空格分割的第二组 同理 $1表示第一组
tr -d "addr: 删除"addr:"这个字符串
多网卡情况
倘若有多个网卡,可能会出现多个不同网段的IP,这个时候如果还是执行上述命令就会返回多个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地址”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。