rpm -qf /usr/sbin/brctl ip-brctl-0.1-alt1.noarch [root@alt11 ~]# brctl show bridge name bridge id STP enabled interfaces brctl show br150 bridge name bridge id STP enabled interfaces br150 8000.0e0ed42ea50 no vlan150@enp7s0f0 Всё дело в строке 481 for line in $(${IP} -br link show type bridge "${dev}" 2>/dev/null); do быстрохак - for line in $(${IP} -br link show type bridge "${dev}" 2>/dev/null); do + for line in $(${IP} -br link show type bridge ${dev} 2>/dev/null); do Но это именно хак на скорую руку...
Не показывает бридж,ели не указать явно имя Версия ip-brctl-0.1-alt1 Дистрибутивы - ALT Server 11.0 (Sisyphus) Шаги Воспроизведения 1. Установить пакет: # apt-get install -y ip-brctl 2. Создать сетевой мост: # ip link add name br150 type bridge && \ ip link add veth0 type veth peer name veth1 && \ ip link set veth1 master br150 && \ ip link set br150 up 3. Выполнить показ всех мостов: # brctl show Ожидаемый результат: Показан только что настроенный мост: bridge name bridge id STP enabled interfaces br150 8000.9e92f658947c no veth1@veth0 Так указано в help: show [ <bridge> ] show a list of bridges Фактический результат: Ничего не показывает: bridge name bridge id STP enabled interfaces Воспроизводится в P11. Дополнительно Проблема находится в строке 479 файла /usr/sbin/brctl в функции cmd_show: for line in $(${IP} -br link show type bridge "${dev}" 2>/dev/null); do Когда dev пуст (вызов brctl show без аргументов), команда выполняется как: ip -br link show type bridge "" Что приводит к ошибке: Device "" does not exist. При этом команда без пустого аргумента работает корректно: ip -br link show type bridge # работает ip -br link show type bridge "" # ошибка exit code 1 Предполагаемое исправление Необходимо условно передавать аргумент, только если он задан: if [ -n "${dev}" ]; then for line in $(${IP} -br link show type bridge "${dev}" 2>/dev/null); do else for line in $(${IP} -br link show type bridge 2>/dev/null); do fi Ну или менять документацию и проверять условием выше: if [ -z "${dev}" ]; then err_dev_exists n "${dev}" "bridge ${dev} does not exist!" err_dev_exists n "${dev}" "device ${dev} is not a bridge!" bridge fi
Именно в таком ключ не получится - внутри if ломается цикл for line in $(${IP}.... Только если блок целиком переносить внутрь if. Но это как-то не красиво
Можно написать ${dev:+"${dev}"}, чтобы сохранить кавычки на случай наличия внутри параметра пробелов, но убрать аргумент, если значение ${dev} пустое.
ip-brctl-0.2-alt1 -> sisyphus: Wed Feb 25 2026 Alexey Shabalin <shaba@altlinux> 0.2-alt1 - Fix brctl show with no bridge (ALT#57898).
Отправить бы версию с исправлением и в P11
#411791