linux - 如果不是通过 DHCP (sed) 获得,则从文本文件设置静态 IP

标签 linux sed ip dhcp ifconfig

当DHCP获取不到IP地址时,我想设置一个静态IP,我之前写在一个文本文件中。

我的 staticIP.txt 的内容:

10.10.0.254

到目前为止,当 DHCP 不工作时,我得到一个静态 IP。我为此编辑了 /etc/dhcp/dhclient.conf:

timeout 10;
lease {
interface "eth0";
fixed-address 10.0.0.10;
option subnet-mask 255.255.255.0;
renew 2 2022/1/1 00:00:01;
rebind 2 2022/1/1 00:00:01;
expire 2 2022/1/1 0:00:01;
}

(来源:Set static ip if not obtained from DHCP (script))

现在我想覆盖“fixed-address 10.0.0.10;”在我的 staticIP.txt 中使用静态 IP“10.10.0.254”,当没有获得 DHCP 时。

到目前为止,我所能做的就是替换“固定地址;”用 sed 阻塞并将其写入文件:

sed -i 's/fixed-address [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/<MANUAL ENTERED IP>/g' /etc/dhcp/dhclient.conf

现在缺少两件事:

  1. 从 staticIP.txt 中提取 IP 并覆盖“fixed-address [IP];”

  2. 检查是否没有通过DHCP获取IP并运行sed命令

如果有人能帮助我,我会很高兴。

非常感谢。

最佳答案

为什么要在文件中保留一个 IP 地址? 直接添加到正则表达式中不是更好吗?

sed -i 's#fixed-address 10.0.0.10;#fixed-address 10.10.0.254;#' /etc/dhcp/dhclient.conf

关于linux - 如果不是通过 DHCP (sed) 获得,则从文本文件设置静态 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33013795/

相关文章:

linux - diff 的奇怪行为 |搜索引擎优化 | sed

java - 如何使用Spark的嵌入式jetty服务器监听外部请求

linux - socket - 事件套接字的最大限制

linux - 如何使用 awk sed 或 shell 脚本合并两个不同的行

perl - 复制第一个空行之前的所有内容

java - java中如何从请求中获取ip?

c#-4.0 - NetworkInterface.NetworkInterfaceType 将无线接口(interface)确定为 Windows 8 中的以太网类型

c++ - 触摸板 + QToolButton = supperios press

linux - 在 *nix 系统中创建临时命名的 fifo

c# - 如何在 Linux 上将另一个应用程序置于 GTK Sharp 窗口前面?