diyun123 发表于 2022-11-28 18:29

一位菜鸟的shell脚本实验作业分享

shell实现网络切换脚本
题目

公司软件工程师在测试嵌入式开发终端的过程中需要上网查找资料,其中连接终端时的IP配置如下:IP地址:192.168.0.120;子网掩码:255.255.255.0;默认网关:192.168.0.1。   该工程师上网查资料的网络配置为:IP:172.16.111.100;子网掩码:255.255.255.0;默认网关:172.16.111.1。请编写shell脚本,方便其实现网络切换。






思路
1.通过if判断切换的ip地址
2.使用sed函数将kali的网卡配置文件进行文本替换,完成ip地址的转换
3.重启网卡



shell代码
```sh
#! /bin/bash

NETPATH="/etc/network/interfaces"
IP1="192.168.0.120"
NETMASK1="255.255.255.0"
GATEWAY1="192.168.0.1"


IP2="172.16.111.100"
NETMASK2="255.255.255.0"
GATEWAY2="172.16.111.1"


Toggle() {


    # 判断需要切换的IP配置
    echo "请输入要切换的ip配置,连接终端的为1,上网的为2: "
    read NUM
    #修改eth0的配置为连接终端的
    if [ $NUM -eq 1 ]
    then
    sed -i 's/address '${IP2}'/address '${IP1}'/g' ${NETPATH}         
    sed -i 's/netmask '${NETMASK2}'/netmask '${NETMASK1}'/g' ${NETPATH}
    sed -i 's/gateway '${GATEWAY2}'/gateway '${GATEWAY1}'/g' ${NETPATH}
    fi
    #修改eth0的配置为上网的
    if [ $NUM -eq 2 ]
    then
    sed -i 's/address '${IP1}'/address '${IP2}'/g' ${NETPATH}
    sed -i 's/netmask '${NETMASK1}'/netmask '${NETMASK2}'/g' ${NETPATH}
    sed -i 's/gateway '${GATEWAY1}'/gateway '${GATEWAY2}'/g' ${NETPATH}
    fi
    clear; echo "------------------------查看IP地址配置-----------------------------"
    cat ${NETPATH}

    # 重启网卡
    echo "输入y表示立即重启网卡,输入任意键退出: "
    read SURE
    S=`echo ${SURE} |tr 'A-Z' 'a-z'`
    if [ ${S} == 'y' ];then
      echo "正在重启网络使修改的IP生效,请用新IP地址尝试登陆……"
      service networking restart
    else
      echo "还没有重启网络,修改的IP地址未生效,请手动重启使其生效"
    fi
}

Toggle

```

菜鸟第一次发帖,如有问题或优化建议欢迎大佬们评论!

cloud2010 发表于 2022-11-28 20:05


进来学习

繁华什锦 发表于 2022-11-28 21:16

进来学习习。   仰望大佬。

fengwolf3 发表于 2022-11-28 21:33

进来学习

suxfei 发表于 2022-11-28 21:57

学习下,代码

daolaji 发表于 2022-11-28 22:11

学习中谢谢楼主分享

poster1 发表于 2022-11-28 22:22

bash 真强,学习了,谢谢

wdongdt 发表于 2022-11-28 22:47

支持,谢谢分享

keerui 发表于 2022-11-29 02:17

学到了,感谢楼主

littleworm 发表于 2022-11-29 09:09

进来学习习。   仰望大佬
页: [1] 2
查看完整版本: 一位菜鸟的shell脚本实验作业分享