Necesita un indicador de progreso para un comando PERL SISTEMA () usando T: R: G MOD
-
15-11-2019 - |
Pregunta
Quiero un indicador de progreso que toma la salida de un PERL
system('make')
y para cada línea de salida en STOUT del comando HACK, quiero generar un punto como un indicador de progreso.Desafortunadamente, estoy usando el término :: Readline :: GNU PERL MOD.
¿Cómo redirigir STODOUT para capturar y contar las líneas a medida que se ejecuta el comando HACK?
Solución
#!/usr/bin/perl
my $command = "make";
open (my $cmd, "$command |");
while(<$cmd>){
print ".";
}
print "\n";
Otros consejos
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";}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow