Я хочу написать скрипт и поместить его в /etc/rc.local чтобы

если LAN подключен, то

rfkill block all

еще

nmcli con up id 'Network id' --nowait

Как я должен написать часть if и как я должен проверить, что "LAN подключен"?

1 ответ1

0

Если локальная сеть работает, у вас будет маршрут по умолчанию; в противном случае вы не должны. Поэтому вместо того, чтобы проверять конкретные интерфейсы, я бы просто проверил маршрут по умолчанию.

У меня нет Linux-бокса для тестирования, поэтому я не могу сказать, что дает ip(8), но у route(8) довольно плохие коды выхода из-за ошибок, когда нет маршрутов, поэтому вместо этого я бы просто положился на код выхода grep - если есть строка interface:, то у вас есть локальная сеть.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .