パターンがファイルと一致する場合は0を返す方法は? [コピー]

パターンがファイルと一致する場合は0を返す方法は? [コピー]

mkbootimgではなく、Androidカーネルを再パッケージするバイナリがあります。このプロセスを自動化するスクリプトを作成しています。

画面に何の出力も必要ありません。そのため、出力をfoo.logというファイルにリダイレクトします。

コマンドは -kernel_make "$zImage" "$ramdisk" "$cmdline" "$image" &> data/local/working/foo.log

私の現在の作業フォルダはですdata/local/working/。私が望むのは、出力の最後の行(foo.log)が次のような場合です。

"targed file $1 is patched sucesfully, enjoy new kernel"

その後、0を返して終了します。それ以外の場合は1を返し、終了します。

grepを使用して実行しようとしていますが、コマンドラインを初めて使用するので、正しい方法で実行する方法がわかりません。

ベストアンサー1

グレブ終了デフォルトでは、一致0する場合と1一致しない場合です。だからあなたはこれを行うことができます:

grep -q "targed file \$1 is patched sucesfully, enjoy new kernel" foo.log

すべての出力を抑制します-q

テストするには、次のように話します。

grep -q "targed file \$1 is patched sucesfully, enjoy new kernel" foo.log && echo OK || echo BAD

実際にファイル名で置き換えられた場合、または同じ名前で$1置き換えることができます。\$1.*\S\+

次の点を修正(確認)することも検討できます。

targed     -> target
sucesfully -> successfully

コメントで述べたように、これはファイル全体と一致します。tail@orionの説明に従って使用してください。

おすすめ記事