Linux利用SHELL直接获得IP地址

概述:

准备:

1、第一行 #!/bin/bash 在宣告这个 script 使用的 shell 名称: 因为我们使用的是 bash ,所以,必须要以“ #!/bin/bash ”来宣告这个文件内的语法使用 bash 的语法! 2、程序内容的说明: 整个 script 当中,除了第一行的“ #! ”是用来宣告 shell 的之外,其他的#都是“注解”用途! 3、主要环境变量的宣告: 建议务必要将一些重要的环境变量设置好,PATH 与 LANG (如果有使用到输出相关的信息时) 是当中最重要的! 4、要养成良好的 script 撰写习惯,在每个 script 的文件开始处记录好:

分析:

该出我就偷懒一下,直接放出写好的SHELL内容,至于当中的命令详解可以参考我上篇文章 ,里面有我的SHELL的主要内容。

#!/bin/bash
#Program:
# Get the ip from ipcofing.
#History:
#2016/12/19  Tim   First release
Path=/bin:/sbin:/usr/bin:/usr/sbin:usr/local/bin:usr/local/sbin:~/bin
export Path

#1/告诉使用者,这程序的用户是从ipconfig命令中获取IP地址
echo "该程序是从命令ifcongfig中获取IP地址:"

#2/提示使用者,输入将要查询设备的名字。
read -p "请输入想要查询IP的设备名字:(eth0/eth1/eth2/HELP):" Dev

case ${
          
   Dev} in

   "HELP")
   echo "如果不知道您电脑设备号,可以通过命令/etc/udev/rules.d/70-persistent-net.rules 查看。"
   exit 1
   ;;
   "")
     echo "请输入内容,如eh0/eh1/eh2/HELP"
   exit 1
   ;;
   "eth0")
    ifconfig eth0 | grep inet  | sed s/^.*addr://g | sed s/Bcast.*$//g
    ;;
   "eth1")
    ifconfig eth1 | grep inet  | sed s/^.*addr://g | sed s/Bcast.*$//g
    ;;
    "eth2")
    ifconfig eth2 | grep inet  | sed s/^.*addr://g | sed s/Bcast.*$//g
    ;;
    *)
    echo "请输入正确的内容!"
     exit 1
    ;;
esac

运行结果:

总结:

其实,这SHELL作为第一个版本,可以改进的地方还有很多的,例如: 1、输入HELP可以直接帮助用户进行获取用户的设备。 2、输入无论eth0、eth1、eth2…可以利用正则过滤判断是否输入正确内容,不至于用太多case导致case太臃肿。 3、甚至,既然能实现1的改进基础上,可以实现全自动,不需要用户输入任何内容,自动获取用户设备并且进行查询IP。 还有更多的改进,希望读者能踊跃提出来,大家共同学习哈!

经验分享 程序员 微信小程序 职场和发展