如果我动态设置变量

时间:2016-04-21 12:45:54

标签: bash adb

我使用某些命令的输出来获取.apk文件的路径,然后从Android手机中提取该文件,如下所示:

#!/bin/bash
#This command sets APK_PATH variable to /data/app/com.test.something-1/base.apk
APK_PATH="$(adb shell pm path com.test.something | cut -d':' -f 2)"
# adb pull command is being used to pull .apk file from phone when I have the path
adb pull $APK_PATH

这种获取.apk路径和从手机中提取文件的动态方法不起作用。结果出现以下错误消息:

' does not existdata/app/com.test.something-1/base.apk

然而,当我硬编码路径时,它完美地运作:

#!/bin/bash
APK_PATH=/data/app/com.test.something-1/base.apk
adb pull $APK_PATH

任何人都可以帮我解决这个小小的bash脚本吗?我相信当'adb pull'开始执行时,某些APK_PATH尚未设置但无法修复它。

1 个答案:

答案 0 :(得分:1)

我猜你在返回的值中得到了一个不需要的特殊字符,这是奇怪的遗漏空间的b / c和领先/(除非你输入的信息错误)。

试试这个

APK_PATH="$(adb shell pm path com.test.something |tr -cd '[:graph:] \t' |cut -d':' -f2)"