GNU/Linux >> Tutoriales Linux >  >> Linux

código de retorno grep de Linux

Según man grep página, -c la bandera es para

-c, --countSuppress salida normal; en su lugar, imprima un recuento de líneas coincidentes para cada archivo de entrada.

Entonces, lo que está viendo es el recuento de la coincidencia y no debe confundirse con el código de salida del grep juego. El código 1 se debe a que no hay líneas que coincidan con la entrada.

Echa un vistazo al otro caso,

echo 'No' | grep -c No
1

echo $?
0

También para leer en EXIT CODES el man grep página,

ESTADO DE SALIDA Normalmente, el estado de salida es 0 si se selecciona una línea, 1 si no se seleccionó ninguna línea y 2 si se produjo un error.


El código de salida es 1 porque grep no encontró coincidencias.

ESTADO DE SALIDA El estado de salida es 0 si se encuentran las líneas seleccionadas y 1 si no se encuentran. Si se produjo un error, el estado de salida es 2. (Nota:el código de manejo de errores POSIX debe buscar '2' o más).

La salida es cero porque el recuento de 'Total' es cero. Esto debido a la opción -c:

-c, --countSuppress salida normal; en su lugar, imprima un recuento de líneas coincidentes para cada archivo de entrada. Con la opción -v, --invert-match (ver más abajo), cuenta las líneas que no coinciden. (-c está especificado por POSIX.)

Si desea forzar un código de salida de 0, simplemente puede agregar || true a su orden:

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

Linux
  1. Cómo usar el comando grep de Linux

  2. ¿Código de salida predeterminado cuando finaliza el proceso?

  3. Utilice el comando grep de Linux

  4. ¿Qué son los códigos de salida de Bash en Linux?

  5. ¿Por qué salir del código 141 con grep -q?

Instalación de código de Microsoft Visual Studio en Linux

Cómo usar grep en Linux

Encuentra texto en archivos en Linux usando grep

Comando Grep en Linux (con ejemplos)

Comando Grep en Linux/UNIX

Uso del comando grep en Linux