Задача
В bash-скрипте нужно подождать, пока не станет доступен определенный tcp-порт, но ждать нужно не более определенного времени.
В bash-скрипте нужно подождать, пока не станет доступен определенный tcp-порт, но ждать нужно не более определенного времени.
Решение
for ((i=0; i< 10; i++)) do if(nc -q0 localhost 8080 < /dev/null > /dev/null 2>&1) then break; fi; echo "sleeping"; sleep 2; done
Раз в 2 секунды проверяем открытость localhost:8080, но не более 10 проверок. Такой вариант работает в Ubuntu 18.04, а вот с CentOS пришлось убрать -q0 опцию, т.к. она там не поддерживается.