我正在尝试将linux命令的输出作为Android调试中的参数传递给另一个命令。
以下是我想要合并的步骤。
使用package:/data/app/test.apk
输出为:cut -c 9-
使用/data/app/test.apk
输出为adb pull
在我的第3个命令adb shell pm path com.test.example | cut -c 9- | adb pull -
我尝试过这样的事情:
sys.argv
但这不起作用。有人可以建议为什么以及什么是正确的解决方案或更好的方法?
答案 0 :(得分:1)
您可以使用xargs
将一个命令的输出作为参数传递给另一个命令。
echo "Name" | echo #next line as output
echo "Name" | xargs echo # this will output Name
所以你可以通过以下表达式来实现: -
adb shell pm path com.test.example | xargs cut -c 9- | xargs adb pull -
有关详情,请点击此link。
答案 1 :(得分:0)
我认为你需要distinguish between standard input and parameters。并非每个命令都将-
理解为引用标准输入,甚至那些通常将其与参数区别对待的命令。
你可能想要的是:
adb pull "$(adb shell pm path com.test.example | cut -c 9-)"