#python #bash
Вопрос:
~$ nc 0.0.0.0 11111
==========
echo me: 20744467
==========
20744467
Correct!
==========
echo me: 78587225
==========
78587225
Correct!
==========
echo me: 98051617
==========
...
и т.д.
Я попробовал nc 0.0.0.0 11111 > output.txt
, и кажется, что вывод можно отправить output.txt
, но я понятия не имею, как автоматически отправить ответ обратно по сценарию (см. Блок кода выше).
Редактировать:
Я попробовал скрипт на python:
import socket, sys
sock = socket.socket()
sock.connect((ip, port))
while True:
data = sock.recv(1024).decode()
if not data: sys.exit(0)
print("server output:n" data) #debug
input = ""
for elem in data:
if elem.isnumeric():
input = input elem
print("input = " input)
sock.send(input.encode())
Он застрянет на первой итерации.
Ответ №1:
Попробуй-Н
for R in 20744467 78587225 98051617 ; do printf '%sn' "${R}" ; done | nc -N 0.0.0.0 11111 > output.txt
Комментарии:
1. Извините за двусмысленность, но эти цифры случайны. Поэтому я думаю, что мне нужно прочитать вывод, получить номер после
echo
и отправить его обратно.2. Добро пожаловать в Stack Overflow. Дампы кода без каких-либо объяснений редко бывают полезны. Переполнение стека-это обучение, а не предоставление фрагментов для слепого копирования и вставки. Пожалуйста, отредактируйте свой вопрос и объясните, как он отвечает на конкретный задаваемый вопрос.
Ответ №2:
попробуйте перенаправить и тройник
nc 0.0.0.0 11111 2>amp;1 | tee output.txt