我希望能够生成 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
Run Code Online (Sandbox Code Playgroud)
不幸的是,firefox 无法呈现从标准输入输入的数据。谷歌浏览器也不能。lynx可以,但谁想使用它?
我尝试创建一个命名管道,在 chrome 和/或 firefox 中打开它,然后将数据传送到它——但是当我通过命名管道发送数据时,浏览器没有更新。
是否有任何非基于文本的浏览器可以从标准输入呈现 html?输出不需要炫目,我最感兴趣的是让分隔数据在运行中更具可读性。
编辑:
我尝试使用 bash 的进程替换,例如firefox <(sh /tmp/tablegen.sh),这也不起作用。最坏的情况是,我可以输出到临时文件,渲染,然后删除,但我更喜欢稍微优雅的解决方案。
dot*_*hen 14
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.
Run Code Online (Sandbox Code Playgroud)
现在我可以运行这样的脚本:
$ python foo.py | bcat
Run Code Online (Sandbox Code Playgroud)
...生成的 HTML 输出将在新的 Firefox 选项卡中打开!
在 Ubuntu 和其他基于 Debian 的 Linux 发行版上,您可以bcat使用以下命令进行安装:
$ sudo aptitude install ruby-bcat
Run Code Online (Sandbox Code Playgroud)