Frage

Wenn ich diesen Perl-App:

print `someshellscript.sh`;

, das druckt paar Sachen und dauert eine lange Zeit in Anspruch, wie kann ich diese Ausgabe in der Mitte der Ausführung des Shell-Skript drucken?

Sieht aus wie Perl nur das someshellscript.sh Ergebnis drucken, wenn es abgeschlossen ist, ist es eine Möglichkeit, Ausgang bündig in der Mitte der Ausführung zu machen?

War es hilfreich?

Lösung

Was möchten Sie wahrscheinlich ist, etwas zu tun wie folgt aus:

open(F, "someshellscript.sh|");
while (<F>) {
    print;
}
close(F);

Das läuft someshellscript.sh und öffnet ein Rohr, das seinen Ausgang liest. Die while Schleife liest jede Zeile der Ausgabe vom Skript generiert und druckt sie. Sehen Sie sich die öffnen Dokumentationsseite für weitere Informationen.

Andere Tipps

Das Problem hierbei ist, dass in einen String mit Backticks speichert Ihr Skript zu entkommen, die Sie dann ausdrucken. Aus diesem Grunde wäre es keine Möglichkeit, zu „spülen“ mit Druck.

Unter Verwendung des Systems () Befehlsausgabe kontinuierlich gedruckt werden soll, aber Sie werden in der Lage zu erfassen, um die Ausgabe nicht:

system "someshellscript.sh";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top