GNU/Linux >> Znalost Linux >  >> Linux

Návratový kód grep pro Linux

Podle man grep stránka, -c příznak je pro

-c, --countPotlačit normální výstup; místo toho vytiskněte počet odpovídajících řádků pro každý vstupní soubor.

Takže to, co vidíte, je počet shod a nezaměňujte s výstupním kódem grep zápas. Kód 1 je způsobeno tím, že ze vstupu neodpovídají žádné řádky.

Podívejte se na druhý případ,

echo 'No' | grep -c No
1

echo $?
0

Také ke čtení na EXIT CODES na man grep stránka,

EXIT STATUS Normálně je výstupní stav 0, pokud je vybrána linka, 1, pokud nebyly vybrány žádné linky, a 2, pokud došlo k chybě.


Výstupní kód je 1, protože grep nic neodpovídalo.

EXIT STATUSStav ukončení je 0, pokud byly nalezeny vybrané řádky, a 1, pokud nebyly nalezeny. Pokud došlo k chybě, stav ukončení je 2. (Poznámka:Kód pro zpracování chyb POSIX by měl zkontrolovat, zda je '2' nebo vyšší.)

Výstup je nula, protože počet 'Celkem' je nula. To kvůli volbě -c:

-c, --countPotlačit normální výstup; místo toho vytiskněte počet odpovídajících řádků pro každý vstupní soubor. S volbou -v, --invert-match (viz níže) počítejte neodpovídající řádky. (-c je určeno POSIXem.)

Pokud byste chtěli vynutit návratový kód 0, stačí přidat || true na váš příkaz:

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

Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak kódovat modul jádra Linuxu?

  3. Proč opustit kód 141 pomocí grep -q?

  1. Výchozí kód ukončení při ukončení procesu?

  2. Může Grep vrátit pravdu/nepravdu nebo existují alternativní metody?

  3. Použijte příkaz Linux grep

  1. 14 Příklady příkazů Grep v Linuxu

  2. Linuxový příkaz grep

  3. Co jsou výstupní kódy Bash v Linuxu