Как перенаправить вывод команды linux обратно в команду-прецессион

1496
jederik

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

2

1 ответ на вопрос

2
Alan Shutko

Named pipes are your friend!

mkfifo ncloop nc -l 8090 < ncloop | (read METHOD URI PROTOCOL ; echo "method: $METHOD" ; echo "path: $URI" ; echo "prot: $PROTOCOL") > ncloop 

(Tested in OS X 10.8.2 but should work on any Unix.)

Похожие вопросы