如何编写Linux Shell脚本查看和修改网卡配置文件

这个脚本的基本逻辑和 Linux 自带的 setup 网络配置工具其实差不多。它通过 vi 命令创建 config.sh 文件,然后利用 case 语句判断用户输入的数字,分别对 eth0、eth1 或 eth2 网卡进行配置。

在 eth2 的分支中,逻辑也是一样的,只是变量名换成了 ip2、mask2 等。如果不输入 0、1 或 2,程序会报错提示只能输入这三个数字。最后记得给脚本加上执行权限,也就是 chmod +x config.sh 后再运行。

如果用户输入的是具体的网卡编号,比如 1,脚本会计算数组下标(编号减 1),然后只执行 ifconfig 加上对应的那个网卡名称,这样就能精准地查看单个网卡的当前配置情况了。

接着可以用一个数组来存储这些网卡名,然后打印出系统中有多少个网卡,并列出每一个网卡的名称,方便用户了解当前有哪些可用的网络接口可供选择进行查看或修改。

我实测了一下这个脚本,虽然我只有一块网卡所以只测了 eth0,但运行结果很清晰。输入正确的 IP 和掩码后,系统会正常关闭并重启网络接口,显示 Determining IP information for eth0... done. 之类的成功信息。

当用户选择查看配置时,脚本会询问是否显示网卡配置信息。如果选择显示,它会列出所有网卡的编号和名称,比如 0 代表全部,1 代表第一个网卡,以此类推,让用户选择想要查看的具体接口。

如果你觉得上面的脚本不够灵活,其实可以尝试另一种方法来列出当前的网卡。通过 ifconfig 配合 grep 和 awk 命令,可以过滤出包含 encap 关键字的行,提取出所有的网卡接口名称。

不过这个脚本还没有做完善的错误处理,所以用户在输入 IP 地址和子网掩码时必须非常小心,确保格式正确,否则可能导致网络配置出错无法使用。毕竟这是比较原始的手动配置方式。

如果用户输入 0,脚本会遍历数组中的每一个网卡变量,依次执行 ifconfig 命令来显示所有网卡的详细配置信息。这样一次性就能看到所有接口的状态和参数,方便整体排查网络问题。

具体执行时,脚本会提示用户输入 0 到 2 之间的数字来选择目标网卡。如果选 0,会提示输入 eth0 的新 IP 地址和子网掩码,随后用 ifconfig 命令应用配置并重启网络服务,其他网卡也是类似的流程。