Siechfred: grep Rückgabewert

Beitrag lesen

Auf meinem Unix:
#grep "133.8.165.2 " /opt/named/hosts/masters/*; echo $?;
1

Ich habe keine Ahnung, welchen Rückgabewert du erwartest.

Mit Perl:
print system("grep "133.8.165.2 " /opt/named/hosts/masters/*");
256

Das ist der Status des System-Aufrufs, nicht der Rückgabewert der grep-Operation. Von daher erscheint mir die Divergenz beider Werte logisch.

Was mach ich falsch?

Du liest die Doku zu system nicht:

"The return value is the exit status of the program as returned by the wait call. To get the actual exit value, shift right by eight (see below). ... This is not what you want to use to capture the output from a command, for that you should use merely backticks or qx//, as described in "STRING" in perlop."

Alles klar? :)

Siechfred

--
Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.