Мне бы хотелось иметь возможность генерировать HTML, а затем передавать его в программу, которая его отобразит, что-то вроде этого:
for i in 1 2 3
do
for j in a b c
do
echo "<table border="1"><tr><td>$i</td><td>$j</td></tr></table>"
done
done | /usr/bin/firefox
К сожалению, Firefox не может отображать данные, поступающие из stdin. Google-Chrome тоже не может. lynx
Может, но кто захочет этим пользоваться?
Я попробовал создать именованный канал, открыть его в Chrome и/или Firefox, а затем передать в него данные, но браузер не обновился, когда я отправил данные через именованный канал.
Есть ли какие-нибудь нетекстовые браузеры, которые будут отображать html из stdin? Вывод не должен быть блестящим, я в основном заинтересован в том, чтобы сделать разделенные данные немного более читабельными, на лету.
Редактировать:
Я пробовал использовать подстановку процессов bash, например firefox <(sh /tmp/tablegen.sh)
, это тоже не сработало. В худшем случае я мог бы вывести во временный файл, отрендерить, а затем удалить, но я бы предпочел немного более элегантное решение.
решение1
Из одного из ответов наэтот вопрося нашелbcat
:
NAME
bcat - browser cat
DESCRIPTION
The bcat utility reads from standard input, or one or
more files, and pipes output into a web browser. file
may be '-', in which case standard input is concatenated
at that position.
When invoked as btee, all input is written immediately
to standard output in addition to being piped into
the browser.
Теперь я могу запустить такой скрипт:
$ python foo.py | bcat
...и полученный HTML-код открывается в новой вкладке Firefox!
В Ubuntu и других дистрибутивах Linux на базе Debian установку можно выполнить bcat
с помощью следующей команды:
$ sudo aptitude install ruby-bcat