之前的一个问题得到了几个涉及 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
答案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`