Я пытаюсь отправить команды на порт tcp с помощью netcat
и ответа канала,
когда я запускаю netcat
и набираю свою команду, она печатает ответ правильно, но когда я передаю команду из канала, она отправляет команду правильно, но не печатает ответ
Итак, это работает правильно:
netcat localhost 9009
в то время как это просто отправляет команду, но не печатает ответ:
echo 'my_command' | netcat localhost 9009
Почему?
Как я могу сделать, netcat
чтобы напечатать текст ответа?
OpenBSD netcat (Debian patchlevel 1.105-7ubuntu1)
версия; и на удаленном конце находится telegram-cli
на той же машине.
netcat
получает EOF на STDIN, он немедленно выключает обе стороны сокета вместо того, чтобы сделать половину закрытия и ждать, пока удаленная сторона закроет свой конец. Если socat
это вариант, я бы настоятельно рекомендовал вместо этого. Есть только один socat
, так что у вас нет проблем с переносимостью, поскольку у него дюжина разных его разновидностей, он ведет себя намного более разумно и легко настраивается.