Eu gostaria de poder gerar HTML e depois canalizá-lo para um programa que irá renderizá-lo, algo como isto:
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
Infelizmente, o Firefox não pode renderizar dados canalizados do stdin. Nem o Google Chrome. lynx
pode, mas quem quer usar isso?
Tentei criar um pipe nomeado, abri-lo no Chrome e/ou Firefox e, em seguida, canalizar os dados para ele - mas o navegador não foi atualizado quando enviei dados através do pipe nomeado.
Existem navegadores não baseados em texto que renderizarão html a partir do stdin? A saída não precisa ser chamativa, estou mais interessado em tornar os dados delimitados um pouco mais legíveis, em tempo real.
Editar:
Tentei usar a substituição de processo do bash, por exemplo firefox <(sh /tmp/tablegen.sh)
, que também não funcionou. Na pior das hipóteses, eu poderia gerar um arquivo temporário, renderizar e excluir, mas preferiria uma solução um pouco mais elegante.
Responder1
De uma das respostas emessa questãoeu encontreibcat
:
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.
Agora posso executar um script como este:
$ python foo.py | bcat
...e a saída HTML resultante abre em uma nova aba do Firefox!
No Ubuntu e outras distribuições Linux baseadas em Debian você pode instalar bcat
com este comando:
$ sudo aptitude install ruby-bcat