4

次のことについて助けが必要です。

Linux を使用して、デバイスに送信されるコマンドをスクリプト化します。grep logcat コマンドをデバイスに送信し、その出力が生成されているときにそれを繰り返し、特定の文字列を探す必要があります。この文字列が見つかったら、スクリプトを次のコマンドに移動します。

疑似コードで

for line in "adb shell logcat | grep TestProccess"
do 
    if "TestProccess test service stopped" in line:
       print line
       print "TestService finished \n"
       break
    else:
       print line
done
4

3 に答える 3

5
adb shell logcat | grep TestProcess | while read line
do
  echo "$line"
  if [ "$line" = "TestProces test service stopped" ]
  then echo "TestService finished"
       break
  fi
done
于 2013-03-04T16:49:15.793 に答える
1
adb shell logcat | grep -Fqm 1 "TestProcess test service stopped" && echo "Test Service finished"

grepフラグ:

  1. -F-文字列を正規表現としてではなく、文字通りに扱います
  2. -q-標準出力には何も出力しません
  3. -m 1-最初の試合後に停止します

後のコマンドは、一致するものが見つかった&&場合にのみ実行されます。grep最終的に一致し、戻ってきたらgrep無条件に続行したい場合は、そのままにしておきます。&& ...

于 2013-03-04T16:56:19.033 に答える
0

until ループを使用できます。

adb shell logcat | grep TestProccess | until read line && [[ "$line" =~ "TestProccess test service stopped" ]]; do
 echo $line;
done && echo -n "$line\nTestService finished" 
于 2013-03-05T20:34:25.467 に答える