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

时间:2023-01-16 19:29:32

  1. ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"​

命令解释如下:


  1. grep 'inet'             截取包含ip的行
  2. grep -v '127.0.0.1'     去掉本地指向的那行
  3. grep -v inet6           去掉包含inet6的行
  4. awk '{ print $2}'       $2 表示默认以空格分割的第二组 同理 $1表示第一组​
  5. tr -d "addr:            删除"addr:"这个字符串

输出结果:


  1. [root@master]# ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
  2. 192.168.168.200

在另外一台机器上的输出结果是:


  1. [root@master]# ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "add:"
  2. 10.147.197.32
  3. 192.168.122.1

192.*.*.*    和  10.*.*.* 这两个网段是不同的,现在要实现在不同网段的IP地址打印不同的输出,shell脚本如下:


  1. #!/bin/sh
  2. ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"​`
  3. echo $ip
  4. if[[ $ip =="10."*]]
  5. then
  6. echo "该网段是10.*.*.*网段"
  7. else
  8. echo "该网段是192.*.*.*网段"
  9. fi