条件がある場合はgrepを繰り返します。 [閉じる]

条件がある場合はgrepを繰り返します。 [閉じる]

誰でも私を助けることができますか?

シェルスクリプトの作成を開始しようとしていますが、この問題について混乱しています。 「adb shell ps」コマンドが必要grepで、名前のある3つのプロセスを探します。

  1. プロセス1
  2. 工程2
  3. 工程3

grepこれらのプロセスが出力に表示される場合はスクリプトを使用し続け、そうでない場合はgrep30秒間隔で5回確認してください。最後に - プロセスが開始されない場合は、フォームスクリプトを終了してください。

ベストアンサー1

以下はあなたが探していると思われるスクリプトです。

#!/bin/bash

cnt=1; found=0;
while [ "$cnt" -le 5 ]; do
  echo "chk#: $cnt"
  if [[ $(pgrep -f "proc1") && $(pgrep -f "proc2") && $(pgrep -f "proc3") ]]; then
    found=1
    break
  fi
  let cnt=cnt+1
  sleep 6
done

[ "$found" -eq 0 ] && exit

echo "found them"

proc1、proc2、およびproc3がプロセスの実際の名前である場合は、この行を変更できます。上記のコマンドラインで、これらの文字列が表示されるかどうかを探します。

  if [[ $(pgrep "proc1") && $(pgrep "proc2") && $(pgrep "proc3") ]]; then

pgrepこのコマンドはデフォルトで単一のコマンドで実行できるため、スクリプトは代わりに使用しますgrepps .. | grep ...

おすすめ記事