如何强制 nmcli 重新连接到不同的 uuid?

nma*_*max 5 bash scripts network-manager wireless networking

我有一个 bash 脚本来检查我的网络环境并相应地安装共享。如果我在工作并且有到 LAN 的硬线连接,那么我想为我办公室的无线设备激活热点连接。

这是脚本:

#!/bin/bash
# are we at home?
if [ "$(ping -q -c1 00.00.00.00)" ]; then
  mount <home shares>
# well then are we on campus?
elif [ "$(ping -q -c1 00.00.00.00)" ]; then
  mount <work shares>
  # if we're on campus, then are we connected to an ethernet cable?
  if [ "$(nmcli dev list iface eth0 | grep GENERAL.CONNECTION)" != "GENERAL.CONNECTION:                     not connected" ]; then
  nmcli con up uuid <uuid> iface wlan0
  fi
fi
Run Code Online (Sandbox Code Playgroud)

nmcli 命令失败;有几个问题。

nmcli 工具似乎不允许任意断开无线连接。您可以这样做,nmcli con down但前提是您可以指定<id><uuid>。在我的环境中,wlan0 将有点随意地连接到几个无线网络之一。

nmcli dev disconnect一个特定的作品<iface>,但似乎防止重新连接到任何东西,除了通过手动选择。在 bash 脚本中重新连接似乎不起作用。

nmcli con up如果<iface>已经建立了连接,该命令(当前在上面的脚本中)似乎不起作用。

关于如何在未指定的连接已经建立时nmcli强制使用指定的<uuid>连接的任何建议<uuid>?除了 nmcli 之外的其他东西会更好吗?

谢谢!