当一个人
时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 }}
答案 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
我希望这会有所帮助。