Все другие решения используют netcat для поддержки сети, но вы можете покончить с этим, если ваш bash достаточно свежий и скомпилирован с --enable-net-redirections
(что, насколько я могу судить, все, кроме Debian и Ubuntu; не стесняйтесь комментировать, если я должен приспособиться).
Тогда grep
может провести реальное тестирование. Код возврата - оболочка (0 для успеха, ненулевое значение для сбоя), так что вам нужно будет инвертировать его, но bash
прекрасно с этим справляется.
В двух словах:
< /dev/tcp/host/port grep -q 'expected value'
echo $(( 1 - $? ))