Search code examples
bashshellgrep

Checking if output of a command contains a certain string in a shell script


I'm writing a shell script, and I'm trying to check if the output of a command contains a certain string. I'm thinking I probably have to use grep, but I'm not sure how. Does anyone know?


Solution

  • Test the return value of grep:

    ./somecommand | grep 'string' &> /dev/null
    if [ $? == 0 ]; then
       echo "matched"
    fi
    

    which is done idiomatically like so:

    if ./somecommand | grep -q 'string'; then
       echo "matched"
    fi
    

    and also:

    ./somecommand | grep -q 'string' && echo 'matched'