Я использую следующее, чтобы дождаться открытия порта.

while ! nc -z 127.0.0.1 8080; do sleep 0.1; done

как можно изменить выше, чтобы проверить несколько портов. Таким образом, скрипт должен останавливаться только тогда, когда все порты заняты, например, 8080, 8081 и 8082.

1 ответ1

0

Вам необходимо запустить nc отдельно для каждого порта:

while ! (nc -z 127.0.0.1 8080 && nc -z 127.0.0.1 8081 && nc -z 127.0.0.1 8082)
    do sleep 0.1
done

(разделить на несколько строк для удобства чтения)

При этом используется подоболочка оболочки со списком команд с логическим оператором "и" && ; вторая команда nc запускается только в случае успеха первой команды и т. д .; как только все команды nc успешны, состояние выхода подоболочки истинно, это отменяется ! и цикл завершается в while

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