誰でも私を助けることができますか?
シェルスクリプトの作成を開始しようとしていますが、この問題について混乱しています。 「adb shell ps」コマンドが必要grep
で、名前のある3つのプロセスを探します。
- プロセス1
- 工程2
- 工程3
grep
これらのプロセスが出力に表示される場合はスクリプトを使用し続け、そうでない場合はgrep
30秒間隔で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
このコマンドはデフォルトで単一のコマンドで実行できるため、スクリプトは代わりに使用しますgrep
。ps .. | grep ...