Perl の出力を取得する進行状況インジケーターが必要です
system('make')
make コマンドから STDOUT に出力される行ごとに、進行状況インジケーターとしてドットを出力したいと考えています。残念ながら、私は Term::ReadLine::Gnu Perl mod を使用しています。
make コマンドの実行中に STDOUT をリダイレクトして、行をキャプチャしてカウントするにはどうすればよいですか?
Perl の出力を取得する進行状況インジケーターが必要です
system('make')
make コマンドから STDOUT に出力される行ごとに、進行状況インジケーターとしてドットを出力したいと考えています。残念ながら、私は Term::ReadLine::Gnu Perl mod を使用しています。
make コマンドの実行中に STDOUT をリダイレクトして、行をキャプチャしてカウントするにはどうすればよいですか?
#!/usr/bin/perl
my $command = "make";
open (my $cmd, "$command |");
while(<$cmd>){
print ".";
}
print "\n";
make >& >(while read f; do echo -n .; done; echo)
明らかにこれはシェル ソリューションですが、進行状況インジケーターとしてのドットはドットです。
もちろん、問題が発生した場合に備えて、make のコピーをファイルに保存するために、そこにティーを貼り付けることもできます。
説明のつかない理由でシェル ソリューションが気に入らなかった (支持も受け入れもされなかった) ように見えたので、純粋な perl ソリューションを次に示します。
if (open(X,"make|")) { local($|)=1; while(<X>) { print "."; } close(X); print "\n";}