Я знайшов такий спосіб перевірити, чи доступний хост на даному порту, однак мене цікавить лише код статусу команди, тому я намагаюся щось подібне:
[CptBartender@somewhere ~]$ <dev/tcp/host/port ; echo $?
0
Це добре працює, якщо я спробую відкрити порт, проте якщо я перевіряю закритий порт, я отримую:
[CptBartender@somewhere ~]$ <dev/tcp/host/blocked_port ; echo $?
-bash: connect: Connection refused
-bash: /dev/tcp/host/blocked_port: Connection refused
1
Наступним моїм кроком було спробувати відкинути виходи першої команди, тому я спробував:
[CptBartender@somewhere ~]$ <dev/tcp/host/blocked_port >/dev/null/ 2>&1; echo $?
-bash: connect: Connection refused
-bash: /dev/tcp/host/blocked_port: Connection refused
1
Той самий вихід. Мої запитання полягають у тому, чому перша команда надруковує будь-який вихід і як я не можу це зробити?
</dev/tcp/...зовсім не є командою (я не був точно впевнений, що це було ... тепер я знаю: "нічого не робіть і прийміть це як вхід ... о зачекайте - його не існує") . Крім того, він працює, якщо я просто змінюю порядок, щоб перенаправлення помилки було першим. У будь-якому випадку, дякую!