GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Grep-Rückgabecode

Gemäß man grep Seite, -c Flag ist für

-c, --countNormale Ausgabe unterdrücken; geben Sie stattdessen eine Anzahl übereinstimmender Zeilen für jede Eingabedatei aus.

Was Sie also sehen, ist die Anzahl der Übereinstimmungen und nicht zu verwechseln mit dem Exit-Code von grep passen. Der Code 1 liegt daran, dass keine Zeilen mit der Eingabe übereinstimmen.

Sehen Sie sich den anderen Fall an,

echo 'No' | grep -c No
1

echo $?
0

Auch zu lesen auf EXIT CODES auf man grep Seite,

EXIT STATUSNormalerweise ist der Exit-Status 0, wenn eine Zeile ausgewählt ist, 1, wenn keine Zeilen ausgewählt wurden, und 2, wenn ein Fehler aufgetreten ist.


Der Exit-Code ist 1, weil grep nichts gefunden hat.

EXIT-STATUSDer Exit-Status ist 0, wenn ausgewählte Zeilen gefunden werden, und 1, wenn sie nicht gefunden werden. Wenn ein Fehler aufgetreten ist, ist der Exit-Status 2. (Hinweis:Der POSIX-Fehlerbehandlungscode sollte auf '2' oder höher prüfen.)

Die Ausgabe ist null, weil die Zählung von 'Gesamt' null ist. Dies liegt an der Option -c:

-c, --countNormale Ausgabe unterdrücken; geben Sie stattdessen eine Anzahl übereinstimmender Zeilen für jede Eingabedatei aus. Zählen Sie mit der Option -v, --invert-match (siehe unten) nicht übereinstimmende Zeilen. (-c wird von POSIX angegeben.)

Wenn Sie einen Exit-Code von 0 erzwingen möchten, können Sie einfach || true anhängen zu Ihrem Befehl:

echo 'Total' | grep -c No || true

Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. Standard-Exit-Code, wenn der Prozess beendet wird?

  3. Kann Grep True/False zurückgeben oder gibt es alternative Methoden?

  4. Wie kodiere ich ein Linux-Kernel-Modul?

  5. Warum Exit-Code 141 mit grep -q?

Installieren von Microsoft Visual Studio Code unter Linux

So verwenden Sie grep unter Linux

Finden Sie Text in Dateien unter Linux mit grep

Grep-Befehl in Linux (mit Beispielen)

Grep-Befehl unter Linux/UNIX

Verwendung des grep-Befehls unter Linux