Tengo el grepcomando Estoy buscando una palabra clave de un archivo, pero no quiero mostrar la coincidencia. Solo quiero saber el estado de salida de grep.
shell-script
scripting
grep
jackass27
fuente
fuente

echo $?sigrepdevuelve un código de salida distinto de cero.Simplemente necesita combinar
grep -q <pattern>con una verificación inmediata del código de salida para el último proceso para salir ($?).Puede usar esto para crear un comando como este, por ejemplo:
uname -a | grep -qi 'linux' ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error" ;; esacOpcionalmente, puede suprimir la salida de esta
STDERRmanera:grep -qi 'root' /etc/shadow &> /dev/null ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error: $?" ;; esacEsto se imprimirá
error: 2desde lacasedeclaración (suponiendo que no tengamos privilegios para leer/etc/shadowo que el archivo no exista), pero el mensaje de error degrepserá redirigido para/dev/nullque nunca lo veamos.fuente