局域网是否已连接?

局域网是否已连接?

我想写一个脚本,然后把它放进/etc/rc.local

如果局域网已连接,则

rfkill block all

别的

nmcli con up id 'Network id' --nowait

我应该如何写该if部分以及如何检查“局域网已连接”?

答案1

如果 LAN 已启动,则您将拥有默认路由;否则,您不应该拥有默认路由。因此,我不会检查特定接口,而是只检查默认路由。

我没有 Linux 机器可以进行测试,因此无法判断 ip(8) 给出了什么,但是当没有路由时,route(8) 的错误退出代码相当差,因此我只需要依赖 grep 的退出代码 - 如果有一个 interface: 行,那么你就有一个 LAN。

function have_lan() {
  route -n get  default | fgrep -q interface:
}

相关内容