我希望能夠生成 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
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