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 代码。不要忘记shebang(如果不是/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 回答