從管道渲染 HTML

從管道渲染 HTML

我希望能夠生成 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 傳入的資料。谷歌瀏覽器也不能。lynx可以,但是誰想用它呢?

我嘗試建立一個命名管道,在 Chrome 和/或 Firefox 中打開它,然後將資料透過管道傳輸到該管道 - 但當我透過命名管道發送資料時,瀏覽器沒有更新。

是否有任何非基於文字的瀏覽器可以從 stdin 呈現 html?輸出不需要很耀眼,我最感興趣的是讓分隔資料動態地更具可讀性。

編輯:

我嘗試使用 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 和其他基於 Debian 的 Linux 發行版上,您可以bcat使用以下命令進行安裝:

$ sudo aptitude install ruby-bcat

相關內容