サイトアイコン ex1-lab

grepコマンドで終了ステータスコード(grep -p ~)を取得

centos_logo

centos_logo

grepコマンドで特定の文字を含む場合に、下記のようにgrepコマンドとwcコマンドを利用して検索結果の行数を取得してif文で分岐をよく使っています

#!/bin/bash

cnt=$(grep ERROR test.log | wc -l)

if [ $cnt -ge 1 ]; then
  echo "ERRORの文字列見つかりました"
fi

ChatGPT等などでシェルスクリプトを作成方法を調べると「grep -q 検索文字数 ファイル名」とやると、grepコマンドの結果の終了ステータスコードを取得できます。詳細は以下となります

grep コマンドの -q オプションは「サイレントモード」として動作し、検索結果の有無のみを確認します。

具体的には以下のような動作をします:

「grep -q 検索文字数 ファイル名」を利用して、grepコマンドで特定の文字を含む場合にif文で分岐する際は、以下のようなシェルスクリプトとなり、必要な行数が減ってスッキリとしたシェルスクリプトになります

#!/bin/bash

if grep -q ERROR test.log; then
  echo "ERRORの文字列見つかりました"
fi

 

モバイルバージョンを終了