Thread Returncode aus der Pipe
(7 answers)
Opened by roli at 2009-12-16 15:39
Hallo,
ich bin auf der Suche nach einem Weg wie ich den Returncode eines in einer Pipe ausgeführten Befehls ermitteln kann. Um das ganze noch etwas komplizierter zu gestalten soll das ganze u.a. per ssh auf einem anderen (Linux) Rechner ausführen. Ich habe mal folgendes Beispiel erstellt, an dem ich die Problematik beschreiben möchte: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; print "Remote 1\n"; open (NETZ1, "ssh root\@mirror \'/sbin/ifconfigx\' |"); print "RC= $?\n"; while (my $zeile = <NETZ1>) { print $zeile; } close (NETZ1); print "-------------------------------------\n"; print "Remote 2\n"; open (NETZ2, "ssh root\@mirror \'/sbin/ifconfig\' |"); print "RC= $?\n"; while (my $zeile = <NETZ2>) { print $zeile; } close (NETZ2); print "-------------------------------------\n"; print "Lokal\n"; open (NETZ, "/sbin/ifconfiX |"); print "RC= $?\n"; while (my $zeile = <NETZ>) { print $zeile; } close (NETZ); Das Ergebnis lautet: Quote Was mich hier irritiert ist das im ersten Fall ein Returncode von 0 geliefert wird, wobei das definitiv nicht stimmt, Fall 2 sollte 0 ergeben, tut's aber nicht. Worauf bezieht sich hier der Returncode? Auf die Pipe, auf den ssh Befehl, oder auf den Befehl der via ssh ausgeführt wird? Mir geht es um den Befehl den ssh ausführt, hier das natürlich nicht vorhandene "/sbin/ifconfigX". Das ich im dritten Ansatz wieder eine Null erhalte kann ich mir halt auch nicht erklären. Danke Roland
-- "Steh vorn, während du fragst; sitzen soll, wer antwortet." Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2 |