0

このように実行するスクリプトが必要です。

logphone Foo Bar Tar:I Baz:D

実際に実行されるもの

adb -d logcat dalvikvm:I ActivityManager:W AndroidRuntime:W Foo:* Bar:* Tar:I Baz:D *:S

任意の数のパラメーターでこれを行うにはどうすればよいですか? 順序が多少重要であることに注意してください (Foo、Bar などを最後にすることはできません)。大事ならバッシュ。

私はステップを分解することができます

  1. コマンドライン引数の数に制限はありません...
  2. 各引数にコロン ( :)があるかどうかを確認します
  3. コロン add:*がない場合、そうでない場合はそのままにします
  4. コマンドラインに挿入するadb logcat dal…time:W __INJECTED_ARGS__ *:S
4

1 に答える 1

1

次の bash コードを試してください。シバン (/bin/bash でない場合) とchmod +x script.sh:

#!/bin/bash

for arg; do
    if [[ "$arg" == *:* ]]; then
        args="$args $arg "
    else
        args="$args $arg:* "
    fi
done

exec adb -d logcat dalvikvm:I ActivityManager:W AndroidRuntime:W ${args[@]} *:S

最近の bash をお持ちの場合 ( で表示bash -version)、少し改善できます。

于 2012-10-01T21:28:19.370 に答える