ファイルに特定の文字列があるときにコマンドを繰り返すには?

ファイルに特定の文字列があるときにコマンドを繰り返すには?

出力にエラーを示す特定の文字列がある場合は、コマンドを繰り返したいと思います。私がしたいコマンドはで繰り返すことですgksu ./installer.run > ./inst.log 2>&1 。 Bashコマンドラインでこれをどのように実行しますか?'string'./inst.log

ベストアンサー1

ファイル内の文字列を探します。

grep -q string file

終了値は、grepが何かを見つけたかどうかを示します。

その後、コマンドが実際の終了値を返す限り繰り返すことができます。

while command ; do
    repeat this
done

コマンドを複数回実行したい場合でも

while true ; do
    some command
    if ! grep -q string file ; then
        break         # jump out of the loop if it's _not_ there
    fi
done

それ以外の場合は、ループの前と内部でコマンドを繰り返す必要があります。

おすすめ記事