Как перенаправить вывод команды linux обратно в команду precesssing
Команда linux
nc -l 8090 | (read METHOD URI PROTOCOL ; echo "method: $METHOD" ; echo "path: $URI" ; echo "prot: $PROTOCOL")
слушает порт 8090 и когда я набираю что-то вроде http://127.0.0.1:8090/path/to/nowhere
в мой браузер выводит некоторую информацию о HTTP-запросе в терминале. Теперь я могу напечатать что-нибудь в окне терминала, которое после Ctrl+C будет отображаться в браузере.
Я хочу направить вывод команд echo обратно на стандартный вывод nc, чтобы он отображался в браузере. Есть какой-либо способ сделать это?
1 ответ
Решение
Именованные трубы - твой друг!
mkfifo ncloop
nc -l 8090 < ncloop | (read METHOD URI PROTOCOL ; echo "method: $METHOD" ; echo "path: $URI" ; echo "prot: $PROTOCOL") > ncloop
(Протестировано в OS X 10.8.2, но должно работать на любом Unix.)