Frage

Ich möchte einen Fortschrittsanzeiger, der den Ausgang eines Perls annimmt generasacodicetagpre.

und für jede Zeilenausgabe, um den Befehl MAKE STDOUT zu stecken, möchte ich einen Punkt als Fortschrittsanzeige ausgeben.Leider benutze ich den Begriff :: readline :: gnu perl mod.

Wie leite ich stdout um, um die Zeilen zu erfassen und zu zählen, da der Befehl MACHEN läuft?

War es hilfreich?

Lösung

#!/usr/bin/perl

my $command = "make";

open (my $cmd, "$command |");
while(<$cmd>){
  print ".";
}
print "\n";

Andere Tipps

make >& >(while read f; do echo -n .; done; echo)

Obviously this is a shell solution, but a dot as a progress indicator is a dot.

You could of course stick a tee in there to save a copy of the make to file in case of problems.

Since you didn't seem to like (neither upvoted or accepted) the shell solution for some unexplained reason, here is a pure perl one:

if (open(X,"make|")) { local($|)=1; while(<X>) { print "."; } close(X); print "\n";}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top