ex1-lab

Linux, CentOS, Mac OS X, Windows, 仮想化, Apache等のLinux中心に気になることをメモがわりに・・・

変数内に複数の検索する文字列があるかチェックするシェルスクリプト

    この記事は約2分で読むことができます。

概要

特定の文字列やエラーなどの文字列が変数内のあったら、処理をわけるという処理が必要なスクリプトを作る機会があったので、そのスクリプトを紹介します

スクリプトは、以下の様な感じの処理です

  1. egrepコマンドで検索する文字列をOR検索します。
  2. その検索結果の文字をwcコマンドでバイト数を集計しています
  3. if文で、バイト数に応じて処理をわけています

使用例1(変数に特定記号(/, !)などあるか確認)

変数内のスラッシュ(/)ビックリマーク(!)などの記号があるとその後の処理で、誤動作しそうな場合に、変数内に特殊な記号があるか確認する場合などに使用する場合です。

今回のスクリプトでは紹介していませんが、きちんと正規表現で定義すればメールアドレス・ドメインなどの文字列チェック(RFC規則にあっているか)にも応用できるかと思います

 

スクリプトでは、変数のMOJIに記号文字(/, #, !)があるかegrepコマンドでチェックしています。
その結果をwc -cコマンドでバイト数を集計しています。
その文字列が含まれない場合のCHKMOJIの変数には「0」が返ります。その文字列が含まれる場合は「0」以外の数字となるので、if文で処理を分けています

使用例2(ログに特定文字列(error, fail)などあるか確認)

特定のログにエラーなどがある場合は、アラートを表示したりメールしたりするスクリプトです。実際のログ監視で使用する場合は、前回の確認した際の差分を考えたりしてもう少し複雑な内容になるかと思います。

処理の内容は、上記のスクリプト(使用例1)と同じような処理なので割合します

 

 - Linux , ,