在bash脚本中复制apk文件

时间:2013-05-29 03:26:32

标签: android bash adb

我尝试了我写的以下脚本。

#!/bin/bash
adb -s 015d2578a7280412 shell ls /data/app > apps.txt 
while read line
do
    apk=/data/app/$line
    adb -s 015d2578a7280412 pull $apk apk-nexus7-default
done < apps.txt

我收到的错误如下:

' does not existdata/app/com.StudioOnMars.CSPortable-1.apk
' does not existdata/app/com.adobe.reader-1.apk
...

当我尝试

adb -s 015d2578a7280412 pull /data/app/com.adobe.reader-1.apk apk-nexus7-default

有效。

这段脚本有问题吗?

2 个答案:

答案 0 :(得分:1)

这是adb的一个已知问题 - 即使在linux中它也使用MSDOS样式newline个字符 - CR+LF'\r\n')而不仅仅是LF'\n')。

减轻这种情况的最简单方法是从'\r'输出中删除adb

adb -s 015d2578a7280412 shell ls /data/app | tr -d '\r'> apps.txt

答案 1 :(得分:0)

只是做:

$ adb  -s 015d2578a7280412 pull /data/app/

pull: building file list...
pull: /data/app/some.apk -> ./some.apk
...