modify_ip.sh

代码:

       1 #!/bin/bash
       2
       3 read -p "Please insert a IP:" IP
       4 read -p "Please insert a NETMASK:" NETMASK
       5
       6 if grep "^BOOTPROTO=dhcp"  /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null;then
       7         sed -i "s/dhcp/static/" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
       8         sed -i "/IPADDR=.*/d" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
       9         sed -i "/NETMASK=.*/d" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     10         sed -i "/BOOTPROTO/ a/IPADDR=$IP/n/NETMASK=$NETMASK" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     11 else
     12         if grep "^BOOTPROTO=bootp"  /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null;then
     13                 sed -i "s/bootp/static/" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     14                 sed -i "/IPADDR=.*/d" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     15                 sed -i "/NETMASK=.*/d" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     16                 sed -i "/BOOTPROTO/ a /IPADDR=$IP/n/NETMASK=$NETMASK" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     17         else
     18                 sed -i "/IPADDR=.*/d" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     19                 sed -i "/NETMASK=.*/d" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     20                 sed -i "/BOOTPROTO/ a /IPADDR=$IP/n/NETMASK=$NETMASK" /etc/sysconfig/network-scripts/ifcfg-eth0 &> /dev/null
     21         fi
     22 fi
     23
     24 cat /etc/sysconfig/network-scripts/ifcfg-eth0

 

 

总结:

    

开始想用sed语句来判断BOOTPROTO后面是否为dhcpbootp,结果总是出错,总是重复多显示其他内容,最后还是用grep语句来判断。

觉得现在写的语句有点复杂,不知道有没有能一条语句就能判断BOOTPROTO后面是否为dhcpbootp

这个shell还不能判断输入的ip地址和子网掩码是否正确,需要改正。(9行处)

将一个字符用命令输入到一个文件的命令:

   read -p "Please insert a IP:" IP

   echo $IP >/root/iptemp.txt

iptemp.txtnetmasktemp.txt用来接收ip和子网掩码,以后用来判断ip地址是否正确

sed语句的一些命令还不太熟悉,需要多多练习。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值