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


  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
posted @ 2017-10-20 14:57  四叶草Grass  阅读(6432)  评论(0编辑  收藏  举报