【问题标题】:Bash: standard output puzzleBash:标准输出拼图
【发布时间】:2011-11-19 12:55:06
【问题描述】:

什么时候做

process > file

只有在过程结束后,标准输出才会写入文件。有没有办法马上写出来?

即,我正在使用以下方式进行批量转换 odt2pdf:

libreoffice --convert-to pdf:writer_pdf_Export *.odt

所以 libreoffice 会说明哪些文件会被立即处理。但是当我这样做时:

libreoffice --convert-to pdf:writer_pdf_Export *.odt > log

只有在我关闭 libreoffice 后才会写入信息。 (我想读取日志中的行数 - 这样我会在处理完所有文件后杀死 libreoffice)

编辑

我发现了一个 libreoffice 的命令行选项,我起初误解了它:--invisible - 所以它会在它必须做的事情之后杀死自己 - 所以我不需要自己杀死它 - 因此 no problem any more.

【问题讨论】:

  • 试试unbuffer libreoffice --convert-to pdf:writer_pdf_Export *.odt > log。祝你好运。
  • @shellter 它有效!我找到了--invisible 命令行选项——所以我不再需要这样做了。非常感谢 - 我已经写下了unbuffer。这是一个非常好的技巧工具。
  • 很高兴它有帮助。我之前很着急,我已经发布了一些额外信息的答案。你能接受吗。祝你好运。

标签: bash libreoffice


【解决方案1】:

试试

unbuffer libreoffice --convert-to pdf:writer_pdf_Export *.odt > log

一般读者请注意,unbuffer 在旧式 Unix 平台中并不总是作为 std 二进制文件提供,可能需要搜索和安装包来支持它。

另请注意,O.P. @Adobe 发现 libreoffice 有一个解决问题的 --invisible 选项,即

libreoffice --invisible --convert-to pdf:writer_pdf_Export *.odt > log

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2021-06-24
    • 1970-01-01
    相关资源
    最近更新 更多