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

后端 未结 4 747
谎友^
谎友^ 2020-11-29 18:14

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.

4条回答
  •  一生所求
    2020-11-29 18:33

    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'
    

提交回复
热议问题