Почему я получил `[три: команда не найдена` из моего сценария Bash? Что с этим делать?

Странно, что комментатор jordanm после всего этого не ответил.

Как вы, вероятно, уже давно знаете, при использовании инструментов Linux iproute2 вам больше не нужно создавать псевдоним интерфейса, вы просто добавляете IP-адрес к существующему интерфейсу. Это довольно хорошо задокументировано здесь (Я думаю )на примере того, что мы показываем ту же конфигурацию при использовании ifconfig (, потому что адресу была присвоена метка)

Из Разница между виртуальными интерфейсами с ifconfig и iproute2

ip addr add 192.168.123.3/24 dev ep0 label ep0:0

-3
21.01.2019, 22:40
1 ответ

Вы хотите использовать команду[(или test), а не [whatever, поэтому она должна быть (, например)

[ "$3" -ge 2 ]

вместо [$3 >= 2], что генерирует [three: command not found, если $3равно three. Дополнительно:

  • укажите свои переменные;
  • [не понимает >=, понимает -geи другие варианты;
  • >=в любом случае является перенаправлением, и оно не попало в команду, независимо от того, была ли это команда [или [three. Теперь у вас есть файл с именем =.

В Bash [является встроенным. См. help [, help test.

1
28.01.2020, 05:19

Теги

Похожие вопросы