私はシェルスクリプトを書いています。コマンドの出力に特定の文字列が含まれているかどうかを確認しようとしています。おそらくgrepを使用する必要があると考えていますが、どのようにすればよいかわかりません。誰か知っている?
Grepの戻り値をテストします。
./somecommand | grep 'string' &> /dev/null
if [ $? == 0 ]; then
echo "matched"
fi
これは次のように慣用的に行われます:
if ./somecommand | grep -q 'string'; then
echo "matched"
fi
また:
./somecommand | grep -q 'string' && echo 'matched'
テスト$?
はアンチパターンです
if ./somecommand | grep -q 'string'; then
echo "matched"
fi
別のオプションは、コマンド出力で正規表現の一致をチェックすることです。
例えば:
[[ "$(./somecommand)" =~ "sub string" ]] && echo "Output includes 'sub string'"