Я нашел этот способ проверки доступности хоста для данного порта, однако меня интересует только код состояния команды, поэтому я пытаюсь что-то вроде этого:
[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/...
вообще не является командой (я точно не знала, что это было ... теперь я знаю: "ничего не делай и прими это как ввод ... о, подожди - его не существует") , Кроме того, это работает, если я просто изменяю порядок так, чтобы перенаправление ошибок было первым. В любом случае, спасибо!