![]() |
[Perl] capture program output
Hi Leute,
ich will den CD-Brenn-Vorgang unter GNU/Linux ein wenig mittels Perl automatisieren, d.h so eine Art "Wizard" für die Shell bauen. mkisofs gibt auf der Konsole den aktuellen Status aus, bestehend aus den % finished und der vorraussichtlichen Dauer. Jeweils eine Zeile. Jetzt will ich aber nicht den ganzen Screen auffüllen sondern immer nur die letzte Zeile am Schirm darstellen - wie geht das mit Perl? Danke! |
Stderr/Stdout redirecten
while (Zeilenweise einlesen) { Parsen Eigenen Output ausgeben } fürn Terminal Steuerung auf CPAN suchen, evtl. Termcap etc. |
Und wohin redirecten? Wie sieht das genaue Codefragment aus?
|
den output von einem programm kannst du unter anderem so capturen:
Code:
my @output; |
Ja, aber so bekomme ich den ganzen Output, das ist schon klar.
Ich will das parallel zum Perl-Script cdrecord läuft und die Ausgabe ständig einzeilig aktualisiert wird, d.h. sobald cdrecord eine Zeile auf STDOUT ausgibt, will ich die in meinem Perl-Script einlesen können. |
ja hab auch grad mitbekommen, dass du das anders meinst.
aber mit open müssts gehen, da kriegst du synchron zeilenweise den output des aufgerufenen programms: Code:
open (OUTPUT, "tail -f test.txt|") || die "can't fork: $!"; |
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag