HTML aus einer Pipe rendern

15

Ich möchte in der Lage sein, HTML zu generieren und es dann an ein Programm weiterzuleiten, das es so rendert:

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

Leider kann Firefox keine Daten rendern, die von stdin eingehen. Weder kann Google-Chrome. lynxkann, aber wer will das nutzen?

Ich habe versucht, eine Named Pipe zu erstellen, diese in Chrome und / oder Firefox zu öffnen und dann Daten dorthin weiterzuleiten. Der Browser wurde jedoch nicht aktualisiert, als ich Daten über die Named Pipe gesendet habe.

Gibt es Browser, die nicht auf Text basieren und HTML-Code von STDIN rendern? Die Ausgabe muss nicht schillernd sein. Ich bin hauptsächlich daran interessiert, begrenzte Daten im laufenden Betrieb ein wenig lesbarer zu machen.

Bearbeiten:

Ich habe versucht, bashs Prozesssubstitution zu verwenden, z. B. firefox <(sh /tmp/tablegen.sh)hat das auch nicht funktioniert. Im schlimmsten Fall könnte ich in eine temporäre Datei ausgeben, rendern und dann löschen, aber ich würde eine etwas elegantere Lösung vorziehen.

Barton Chittenden
quelle
1
Ähnliche Frage hier: unix.stackexchange.com/questions/24931/…
wmz
Guter Link; Ich habe meinen Verdacht, dass die Verwendung einer temporären Datei der einzige Weg ist, ziemlich gut bestätigt.
Barton Chittenden

Antworten:

14

Aus einer der Antworten auf diese Frage fand ich 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.

Jetzt kann ich ein Skript wie das folgende ausführen:

$ python foo.py | bcat

... und die resultierende HTML-Ausgabe wird in einem neuen Firefox-Tab geöffnet!

Auf Ubuntu und anderen Debian-basierten Linux-Distributionen können Sie bcatmit diesem Befehl installieren :

$ sudo aptitude install ruby-bcat
dotancohen
quelle
Hallo von 2019, die obige Installation hat nicht funktioniert, hat aber sudo gem install bcatfunktioniert. :-)
roufamatic