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

时间:2024-03-03 20:36:18

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

 

命令解释如下:


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


输出结果:


  1. [root@master]# ifconfig -a|grep inet|grep -127.0.0.1|grep -v inet6|awk \'{print $2}\'|tr -"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.  
  3. ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk \'{print $2}\'|tr -d "addr:"​`
  4. echo $ip
  5. if[[ $ip =="10."*]]
  6. then
  7. echo "该网段是10.*.*.*网段"
  8. else
  9. echo "该网段是192.*.*.*网段"
  10. fi