![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 08.02.2000
Beiträge: 1.696
|
![]() 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!
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you. |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 22.05.2003
Beiträge: 87
|
![]() Stderr/Stdout redirecten
while (Zeilenweise einlesen) { Parsen Eigenen Output ausgeben } fürn Terminal Steuerung auf CPAN suchen, evtl. Termcap etc. |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 08.02.2000
Beiträge: 1.696
|
![]() Und wohin redirecten? Wie sieht das genaue Codefragment aus?
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you. |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() |
![]() den output von einem programm kannst du unter anderem so capturen:
Code:
my @output; my $zeile; @output = `ps -ef`; foreach $zeile (@output) { print $zeile; }
____________________________________
religion is a virus from outer space |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 08.02.2000
Beiträge: 1.696
|
![]() 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.
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you. |
![]() |
![]() |
![]() |
#6 |
Veteran
![]() |
![]() 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: $!"; while (<OUTPUT>) { print; }
____________________________________
religion is a virus from outer space |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|