Lesen-Ausgabe von Befehl in Perl-array
Ich will die Ausgabe eines Befehls in ein array wie dieses:
my @output = `$cmd`;
aber es scheint, dass die Ausgabe aus dem Befehl geht nicht in die @output
array.
Irgendeine Idee, wo es geht?
- Sind Sie sicher, dass Ihr den Befehl schreibt nach STDOUT? Wenn Sie schreibt auf STDERR die backticks nicht erfassen, ohne das Anhängen
2>&1
auf Ihren Anruf. - Wie sind Sie mit der Bestimmung, dass die Ausgabe nicht in das array?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses einfache Skript funktioniert für mich:
Es produziert die Ausgabe (mit Ausnahme der Dreibett-Punkte):
Die Ausgabe des Befehls split auf der Linie Grenzen (standardmäßig in der Listen-Kontext). Die
chomp
löscht den Zeilenumbruch in array-Elemente.$cmd
; Sie haben nicht gezeigt, was in die Befehlszeile, die Sie ausführen. Haben Sie versucht, mitls
oderpwd
oderecho Hello World
wie der Befehl, um zu sehen, ob Sie etwas sinnvolles zurück? Sie haben auch nicht gezeigt, wie Sie die Verarbeitung der array.Den (standard -) Ausgang geht, um das array:
Aktivieren Sie die automatische fehlerprüfungen: