![]() |
![]() |
|
|
|||||||
| 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) | |
|
|