Я пытаюсь отправить команды на порт 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, так что у вас нет проблем с переносимостью, поскольку у него дюжина разных его разновидностей, он ведет себя намного более разумно и легко настраивается.