Linux Shell脚本中获取本机ip地址方法

 更新时间:2020年10月20日 11:37:48   作者:小菠萝测试笔记  
这篇文章主要介绍了Linux Shell脚本中获取本机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下执行此命令一样道理,返回本机所有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地址方法的文章就介绍到这了,更多相关Shell获取本机ip内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • shell中的循环语句、判断语句实例

    shell中的循环语句、判断语句实例

    这篇文章主要介绍了shell中的循环语句、判断语句实例,本文对shell的循环语句、判断语句做了一个小结,以及在使用中的注意事项,需要的朋友可以参考下
    2014-07-07
  • Linux命令ifconfig报错command not found的解决方法

    Linux命令ifconfig报错command not found的解决方法

    最近在安装Vmware CentOS,输入ifconfig查看VM的IP地址,提示command not found,发现没安装命令包,此篇文章记录整个问题解决方法,有和小编遇到一样的问题的小伙伴可以参考阅读本文
    2023-08-08
  • nginx日志切割shell脚本

    nginx日志切割shell脚本

    nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件
    2014-03-03
  • Linux在shell中自动生成1到100的数组方法(两种方法)

    Linux在shell中自动生成1到100的数组方法(两种方法)

    之前自己在写shell脚本的时候,需要自动创建1-100的文本确不知道该如何去创建。今天小编给大家分享两种方法,需要的朋友参考下
    2017-02-02
  • Linux命令之网络命令route详解

    Linux命令之网络命令route详解

    route命令是Linux系统中的一个网络管理工具,用于显示和操作IP路由表,它可以用来查看当前系统的路由表信息,添加、删除或修改路由表项,以及显示路由表中的详细信息,本文给大家介绍Linux命令之网络命令route详解,感兴趣的朋友一起看看吧
    2023-10-10
  • 用expect实现ssh自动登录服务器并进行批量管理的实现方法

    用expect实现ssh自动登录服务器并进行批量管理的实现方法

    这篇文章主要介绍用expect实现ssh自动登录服务器并进行批量管理的实现方法,需要的朋友可以参考下
    2013-02-02
  • shell实现目录增量备份的示例代码

    shell实现目录增量备份的示例代码

    本文主要介绍了shell实现目录增量备份的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Linux命令之systemctl用法详解

    Linux命令之systemctl用法详解

    Linux 服务管理两种方式service和systemctl,systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动,本文给大家详细讲解了Linux systemctl命令用法,需要的朋友可以参考下
    2024-03-03
  • CPU负载监控脚本代码

    CPU负载监控脚本代码

    CPU负载监控脚本代码,需要的朋友可以参考下
    2013-01-01
  • shell批量创建文件并重新命名的实例代码

    shell批量创建文件并重新命名的实例代码

    这篇文章主要给大家介绍了关于shell批量创建文件并重新命名的相关资料,文中还介绍了批量删除文件以及文件更名的多种方法,每种方法都给出了详细实例代码,需要的朋友可以参考下
    2021-07-07

最新评论