echo '<h1>hello, world</h1>' | firefox
cat index.html | firefox
这些命令不起作用。
如果firefox
可以读取stdin,我可以firefox
通过管道将HTML发送到。
是否可以firefox
读取stdin?
简短的答案是,最好编写一个临时文件并打开它。使管道正常工作更加复杂,可能不会给您带来任何额外的优势。也就是说,这就是我所发现的。
如果您的firefox
命令实际上是在启动Firefox而不是与已经在运行的Firefox实例通信,则可以执行以下操作:
echo '<h1>hello, world</h1>' | firefox /dev/fd/0
它告诉Firefox明确读取其标准输入,这是管道放置其数据的位置。但是,如果Firefox已经在运行,则该firefox
命令会将名称传递给主Firefox进程,该进程将读取其自己的标准输入,这可能不会提供任何信息,并且肯定未连接到您的管道。
此外,当从管道中读取内容时,Firefox会大量缓冲内容,因此,如果要这样做的话,它不会在每次给它换行HTML时都更新页面。尝试关闭Firefox并运行:
cat | firefox /dev/fd/0
(注意,您实际上确实需要cat
这里。)重复将一些长行粘贴到您的Shell窗口中,直到Firefox决定更新页面为止,您可以看到它需要多少数据。现在,通过Ctrl+D换行发送“文件结束”信号,并立即查看Firefox更新。但是,您再也无法添加任何数据。
所以最好的可能是:
echo '<h1>hello, world</h1>' >my_temporary_file; firefox my_temporary_file
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句