博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学以致用二十-----试着写的第一个脚本
阅读量:6341 次
发布时间:2019-06-22

本文共 1624 字,大约阅读时间需要 5 分钟。

 

今天试着写了以第一个脚本。

脚本的目的是第一次安装完系统后,自动获取ip地址。

脚本如下

1 #!/usr/bin/bash  2 #check command ifconfig is right or not found  3 #check ip dhcp  4   5 net_path=/etc/sysconfig/network-scripts  6 net_name=$(ls ${net_path} | grep -v 'o$' | grep 'ifcfg')  7 eth_name=$(ls ${net_path} | grep -v 'o$' | grep 'ifcfg' | cut -c 7-)  8   9 if ifconfig &>/dev/null;then 10     net_config=$(ifconfig ${eth_name} | grep inet) 11     if [ "${net_config}" = "" ];then 12         sed -i 's/ONBOOT=no/ONBOOT=yes/g' ${net_path}/${net_name} 13         service network restart 14     else 15         net_ip=$(ifconfig ${eth_name} | grep -v inet6 | grep inet | awk '{print $2}') 16         echo "The ip is "$net_ip"" 17     fi 18 else 19     echo "ifconfig command not found" 20 fi

 

思路:

1、最小化安装centos 7.2后,我发现执行ifconfig命令,会提示

因此在执行ifconfig的时候,做了个if判断

2、   net_name=$(ls ${net_path} | grep -v 'o$' | grep 'ifcfg')

网卡名称。我的虚拟机网卡名称

思路是通过grep 正则表达来查找 ifcfg开头的文件,但是查出来会有两个

当时想着用正则表达式,除去行尾为lo的表达式,试了一些方法没实现。于是采用grep自带的过滤功能,grep -v   

3、   eth_name=$(ls ${net_path} | grep -v 'o$' | grep 'ifcfg' | cut -c 7-)

ifconfig的参数不是带网卡名,不是  ifcofnig  ifcfg-eno16777728,而是  ifconfig  eno16777728

因此需要获取eno16777728这个字段,

思路,采用cut的方式,cut -c   以字符为单位进行分割 

范围控制:    n:只有第n项    n-:从第n项一直到行尾    n-m:从第n项到第m项(包括m)    -m:从一行的开始到第m项(包括m)    -:从一行的开始到结束的所有项 ifcfg-eno16777728 -c  7- 可得到结果  eno16777728

4、 sed -i 's/ONBOOT=no/ONBOOT=yes/g' ${net_path}/${net_name}

sed 替换

5、 net_ip=$(ifconfig ${eth_name} | grep -v inet6 | grep inet | awk '{print $2}')

grep -v  过滤掉 inet6 结合 awk 打印出 ip地址

执行结果:

1、未获取ip的情况

2、 已经获取ip地址的情况

脚本基本实现了我的想法。

再接再厉,多练习,脚本不像想象当中那么复杂。

 

转载于:https://www.cnblogs.com/liongong/p/9791637.html

你可能感兴趣的文章
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
Java中取两位小数
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>
唯一聚集索引上的唯一和非唯一非聚集索引
查看>>
Spark新愿景:让深度学习变得更加易于使用——见https://github.com/yahoo/TensorFlowOnSpark...
查看>>
linux磁盘配额
查看>>
NFS文件共享服务器的搭建
查看>>
IP_VFR-4-FRAG_TABLE_OVERFLOW【cisco设备报错】碎片***
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>
HDU-2044-一只小蜜蜂
查看>>