Используйте Ожидайте
или его реализацию на другом языке (в настоящее время в Википедии есть их список). expect
был разработан именно для такого рода задач автоматизации терминалов. Самый быстрый способ запустить эту автоматизацию - выполнить следующие действия:
autoexpect ssh user@sdf.org
А затем при необходимости размять клавиатуру, выйти из ssh и проверить полученный файл сценария.
Так вот в чем дело, думаю, я могу отвечать клиентам:
echo "this is the response" | nc -lk -U /my/fifo
но все дело в том, как мне реагировать по-разному в зависимости от того, кто клиент? Я имею в виду, как вы можете создать что-то очень полезное, если нет логики, основанной на запросе клиента и т.д.?
Мое единственное предположение - иметь два сервера:
nc -lk -U /my/fifo1 | while read line; do
# custom logic goes here
done > nc -lk -U /my/fifo2
, поэтому клиенты подключаются к:
echo '{"client_id":123}' | nc -U /my/fifo1
nc -U /my/fifo2 | while read line; do
done;
это выдает то, что я знаю о том, как доменные сокеты tcp и unix работают с Node.js и т. д., но я предполагаю, что с bash мы должны сделать это таким образом?
Я также думаю, что, чтобы избежать условий гонки, возможно, придется каким-то образом поместить две вышеуказанные команды в один канал.