如何让 Firefox 9 读取标准输入?

如何让 Firefox 9 读取标准输入?

之前的一个问题得到了几个涉及 stdin 的很好的答案,但这些答案在 Firefox 9.0.1 中都不起作用(编辑:因为我没有读到你必须开始新的火狐进程让它们工作(感谢@manatwork):

  • echo '<h1>hello, world</h1>' | firefox /dev/fd/0结果会出现一个包含 URLfile:///dev/null但不包含文本的新选项卡。
  • cat | firefox /dev/fd/0结果会出现一个包含 URLfile:///dev/null但不包含文本的新选项卡。输入一行文本并按下后,Enter它会终止,并且在新选项卡中仍然不显示任何内容。
  • firefox <( echo '<h1>hello, world</h1>' )打开一个新选项卡,其中包含我的个人资料文件夹。

有什么方法可以在 Firefox 9.0.1 或更高版本中实现此功能吗?

至于背后的原因,如果能够生成仅存储在内存中的标记(除非交换),并保证即使在断电的情况下也不会留下任何内容,那就太好了。

答案1

我发现一个程序叫bcat用红宝石写的。可以通过以下方式访问几个示例这个链接

答案2

遵循@userunknown建议,如果您/tmp不是tmpfs类型文件系统,那么您可以使用/dev/shm或创建自己的tmpfs文件系统(两者都保存在内存中):

/mnt/tmp && mount -t tmpfs none /mnt/tmp

答案3

至于背后的原因,如果能够生成仅存储在内存中的标记(除非交换),并保证即使在断电的情况下也不会留下任何内容,那就太好了。

我不知道其他 Unix 系统的情况,但在 Linux 上,/tmp每次启动/关闭时都会被删除。所以

echo "<html><head><title> FooTemp </title></head></html>" \ 
    > /tmp/foo.html && firefox /tmp/foo.html && rm /tmp/foo.html

对我来说效果很好。

也许更方便:在Firefox中打开文件后立即删除它,我测试过:

echo "<html><head><title> FooTemp </title></head></html>" > \
 /tmp/f3.html && (firefox /tmp/f3.html & sleep 3 ; rm /tmp/f3.html)

给它几秒钟的时间来渲染它,然后将其删除。对我来说就像一个魅力。 3 秒后看不到 /tmp/f3.html ls /tmp/*html,但在浏览器中可见。

答案4

Firefox 9 及更高版本支持数据 URI 方案。任何 HTML 都需要data:text/html,前缀。

shell ~> firefox -new-tab 'data:text/html,<html><body><h1>Hello World</h1></body></html>'

不太标准,但应该可以工作

shell ~> firefox -new-tab "data:text/html,"`cat myfile.txt`

相关内容