如果我动态设置变量,bash 中的命令不起作用
Command in bash doesn't work if I dynamically set variable
我使用一些命令的输出来获取 .apk 文件的路径,然后从 Android phone 中提取该文件,如下所示:
#!/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 路径并从 phone 中提取文件的动态方法不起作用。结果显示以下错误消息:
' 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 尚未设置。
我猜你在返回值中得到了一个不需要的特殊字符,b/c 奇怪的缺失 space 和前导 /(除非你输入的信息有误)。
试试这个
APK_PATH="$(adb shell pm path com.test.something |tr -cd '[:graph:] \t' |cut -d':' -f2)"
我使用一些命令的输出来获取 .apk 文件的路径,然后从 Android phone 中提取该文件,如下所示:
#!/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 路径并从 phone 中提取文件的动态方法不起作用。结果显示以下错误消息:
' 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 尚未设置。
我猜你在返回值中得到了一个不需要的特殊字符,b/c 奇怪的缺失 space 和前导 /(除非你输入的信息有误)。
试试这个
APK_PATH="$(adb shell pm path com.test.something |tr -cd '[:graph:] \t' |cut -d':' -f2)"