Renderizando HTML a partir de um Canal

15

Eu gostaria de poder gerar HTML e canalizá-lo para um programa que o renderize, 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 os dados transmitidos pelo stdin. Nem o google-chrome. lynxpode, mas quem quer usar isso?

Tentei criar um pipe nomeado, abri-lo no chrome e / ou firefox e canalizar dados para isso - mas o navegador não atualizou quando enviei dados pelo pipe nomeado.

Existem navegadores não baseados em texto que renderizam html a partir do stdin? A saída não precisa ser chamativa, estou principalmente interessado em tornar os dados delimitados um pouco mais legíveis, em tempo real.

Editar:

Tentei usar a substituição de processos do bash, por exemplo firefox <(sh /tmp/tablegen.sh), também não funcionou. No pior cenário, eu poderia gerar um arquivo temporário, renderizar e excluir, mas preferiria uma solução um pouco mais elegante.

Barton Chittenden
fonte
1
Pergunta semelhante aqui: unix.stackexchange.com/questions/24931/…
wmz
Bom link; muito bem confirmou minha suspeita de que usar um arquivo temporário é o único caminho a percorrer.
Barton Chittenden

Respostas:

14

De uma das respostas sobre esta pergunta , encontrei 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.

Agora eu posso executar um script como este:

$ python foo.py | bcat

... e a saída HTML resultante é aberta em uma nova guia do Firefox!

No Ubuntu e outras distribuições Linux baseadas no Debian, você pode instalar bcatcom este comando:

$ sudo aptitude install ruby-bcat
dotancohen
fonte
Olá, a partir de 2019, a instalação acima não funcionou, mas sudo gem install bcatfuncionou. :-)
roufamatic 6/11/19