2011-11-19 96 views
2

當一個人擊:標準輸出拼圖

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

+0

http://www.pixelbeat.org/programming/stdio_buffering/ –

+1

嘗試'unbuffer libreoffice --convert-to pdf:writer_pdf_Export * .odt> log'。祝你好運。 – shellter

+0

@shellter它的工作原理!我發現'--invisible'命令行選項 - 所以我不需要再那樣做了。非常感謝你 - 我寫下了'unbuffer'。這是一個很好的技巧工具。 – Adobe

回答

2

嘗試

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

注意對普通讀者,unbuffer並不總是可作爲舊式Unix平臺上性病二進制,並且可能需要一個包來支持它的搜索和安裝。

還要注意的是O.P. @Adobe發現libreoffice有一個--invisible選項來解決這個問題,即

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

我希望這有助於。