将 adb 输出传递给 bash 脚本中的变量

passing adb output to variable in bash script

我正在尝试创建 bash 脚本以使用 adb 手动安装拆分 APK shell 需要使用下面的命令获取会话 ID

命令

SESSION='pm install-create -S 42211368'

这将输出如下内容:Success: created install session [547376362]

547376362 将是会话 ID

我想将 547376362 传递给 SESSION 变量

sh < pm install-write -S 24628703 ${SESSION} 0 /sdcard/YTAPKM/base.apk

所以结果应该是“sh < pm install-write -S 24628703 547376362 0 /sdcard/YTAPKM/base.apk”

grep 就足够了。

SESSION=$(pm install-create -S 42211368 | grep -oE '[0-9]+')
sh < pm install-write -S 24628703 ${SESSION} 0 /sdcard/YTAPKM/base.apk

解释一下发生了什么:

  • grep -E 使用“扩展”正则表达式(更易于使用)
  • grep -o只输出匹配的部分,本例中为整数
  • SESSION=$(some_cmd) 将标准输出从 some_cmd 存储到变量 SESSION,并允许使用管道等