Bash:标准输出拼图

时间:2011-11-19 12:55:07

标签: bash libreoffice

当一个人

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 - 所以它会在它必须做的事情后自杀 - 所以我不需要自己杀死它 - 因此{{3 }}

1 个答案:

答案 0 :(得分:2)

尝试

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

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

另请注意,O.P。@Adobe发现libreoffice--invisible选项解决了这个问题,即

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

我希望这会有所帮助。