Checking if output of a command contains a certain

2019-01-13 07:15发布

问题:

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?

回答1:

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'


回答2:

Testing $? is an anti-pattern

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


标签: bash shell grep