奇怪之处:/etc/network/interfaces 中的“grep”命令

奇怪之处:/etc/network/interfaces 中的“grep”命令

在我们的嵌入式 Linux 设置(Leopardboard SBC 上的 Linux SDK)中深入研究网络初始化的过程时,我们在 /etc/network/interfaces 中发现了一行看似奇怪且可能不起作用的内容:

# Wired or wireless interfaces
auto eth0
iface eth0 inet dhcp
        pre-up /bin/grep -v -e "ip=[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /proc/cmdline > /dev/null

现在,该系统中的内核命令行可能包含行“ip=192.168.2.1”或其他地址,但这行具体忽略如果它匹配(grep -v= 仅显示不匹配的行)。另外,它会将其重定向到 /dev/null,因此无论哪种方式似乎都是徒劳的。

有没有人见过类似的东西,或者知道除了没有什么

答案1

man interfaces

       pre-up command
          Run command before bringing the interface up.  If  this  command
          fails then ifup aborts, refraining from marking the interface as
          configured, prints an error message, and exits  with  status  0.
          This behavior may change in the future.

从那里,我猜你引用的命令基本上是一个测试,注定要中止 ifup 并重新配置接口,如果已经有和ip=...cmdline。重定向到/dev/null应用于预先设置的错误消息,而不是 grep。

相关内容