在bash中使用adb会得到与预期不同的结果

时间:2012-09-24 17:46:40

标签: android bash adb

我有一个bash脚本,用于卸载加载到我们设备上的某些软件。

#!/bin/bash
APKS=`adb shell pm list packages projects`

for apk in $APKS
do
    apk=${apk##package:}
    echo "Uninstalling: $apk"
    adb uninstall $apk
done

当我运行此脚本时,卸载apk的所有命令都会失败。但是,当我在bash脚本之外运行完全相同的命令(adb uninstall projects.abd.def)时,它会成功执行。

我在bash脚本中做错了什么?

1 个答案:

答案 0 :(得分:1)

我想出了这个问题。我假设在变量中有一个回车并且已经对此进行了测试,但它仍然无效。

然而,经过谷歌搜索后,我意识到我正在错误地切断回车。

这是正确的方法:

apk=`echo -n ${apk} | tr -d "\r"`