使用 Bash 安装脚本覆盖网络接口文件

使用 Bash 安装脚本覆盖网络接口文件

我有点左右为难,我有一个相当大的GitHub 存储库我想创建一个setup.sh或一个bootstrap.sh一旦运行就会root下载一些必要的Python pip 模块apt 存储库在触发的机器上。

该存储库适用于运行Raspbian Jessie 8.0。Pi 需要设置为 AdHoc 网络节点。但是,我希望编写的脚本可以在任何Debian基于分布的笔记本电脑也是如此。

我希望这个setup.sh/bootstrap.sh文件也创建一个备份/etc/network/interfaces并通过如下配置接口覆盖原文件:

## Desired Interfaces file
auto lo
iface lo inet loopback

## Ethernet LAN
iface eth0 inet dhcp

## WLAN AdHoc
auto wlan0
allow hot-plug wlan0
iface wlan0 inet6 auto ## IPv6

我想将上述完整的数据写入setup.sh但我认为这不是标准做法!

我是否应该创建一个interfaces.txt文件并使其包含上面提到的详细信息,然后在我的中使用>或?>>setup.sh

例子

就像是

# in the setup.sh file
cat interfaces.txt > /etc/network/interfaces

cat adhoc.txt > /etc/rc.local

其中,adhoc.txt包含

adhocNet(){
    ifconfig wlan0 down
    iwconfig wlan0 mode ad-hoc essid my-ESSID channel 1 txpower 3dBm
    ifconfig wlan0 up
}
adhocNet()
exit 0

我想创建这个 bash 脚本,它可以让最终用户的事情变得更容易!(只是一个想法!)

问题

这是否意味着我必须为我想在我的 GNU/Linux 机器上配置的所有设置创建一个.txt文件,或者是否存在一个折衷方案?

大型存储库如何创建这样的 bash 脚本,以便最终用户最初发现它很容易使用。

答案1

如果要将所有内容保存在一个文件中,则必须在脚本中包含要修改的文件。为了使脚本更具可读性,您可以使用以下方法:https://stackoverflow.com/a/7875598/760942

还有一件事需要考虑:eth0 很常见,但不一定是网络接口的实际名称。尤其是因为可预测的网络接口名称似乎变得越来越普遍。

相关内容