2011-11-19 6 views
2

Quand on neBash: puzzle sortie standard

process > file 

sortie standard s'écrit dans un fichier une seule fois le processus est terminé. Y a-t-il un moyen de l'écrire tout de suite?

A savoir, je fais odt2pdf de conversion par lots avec:

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

Alors LibreOffice dit sur les fichiers sont traités tout de suite. Mais quand je fais:

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

L'information est écrite seulement une fois que je ferme libreoffice. (Je veux lire le nombre de lignes dans le journal - et de cette façon, je tuerai LibreOffice lorsque tous les fichiers sont traités)

Modifier:

J'ai trouvé une option de ligne de commande de LibreOffice que je mal compris au début: --invisible - donc il va se tuer après ce qu'il a à faire - donc je n'ai pas besoin de le tuer moi-même - d'où no problem any more.

+0

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

+1

essayez 'unbuffer libreoffice --convertir en pdf: writer_pdf_Export * .odt> log'. Bonne chance. – shellter

+0

@shellter ça marche! J'ai trouvé l'option de ligne de commande '--invisible' - donc je n'ai plus besoin de faire ça. Merci beaucoup - j'ai écrit 'unbuffer'. C'est un très bon outil pour les astuces. – Adobe

Répondre

2

essayer

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

Note aux lecteurs généraux, unbuffer n'est pas toujours disponible comme binaire std dans le vieux style des plates-formes Unix et peuvent nécessiter une recherche et l'installation d'un package pour le soutenir.

Notez également que O.P. @Adobe constaté que libreoffice a une option --invisible qui a résolu le problème, à savoir

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

J'espère que cela aide.