Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用adb卸载多个android软件包_Android_Bash_Shell_Adb - Fatal编程技术网

使用adb卸载多个android软件包

使用adb卸载多个android软件包,android,bash,shell,adb,Android,Bash,Shell,Adb,我正在尝试使用带有adb卸载的bash脚本卸载多个软件包 理论上,以下脚本应该有效: adb shell pm list packages com.your.app | cut -d ':' -f 2 | while read line ; do adb uninstall --verbose $line done 或 我得到以下错误 失败[删除\失败\内部\错误] 我还发现问题在于adb命令没有使用管道参数或shell变量的参数。例如,下面的命令 echo com.your.app |

我正在尝试使用带有adb卸载的bash脚本卸载多个软件包

理论上,以下脚本应该有效:

adb shell pm list packages com.your.app |
cut -d ':' -f 2 | while read line ; do
  adb uninstall --verbose $line
done

我得到以下错误

失败[删除\失败\内部\错误]

我还发现问题在于adb命令没有使用管道参数或shell变量的参数。例如,下面的命令

echo com.your.app | adb uninstall
这也会产生同样的错误


我已经看过了\r被添加到第一个命令的输出中。我们可以使用
tr-d'\r'
删除这些字符

adb shell pm list packages com.your.app |
cut -d ':' -f 2 |
tr -d '\r' |
xargs -L1 -t adb uninstall

中找到了解决方案符号表示法
'\r'
是不可移植的,尽管它在Linux上通常应与
tr
一起使用。要获得可移植的表示法,请尝试
'\015'
adb shell pm list packages com.your.app |
cut -d ':' -f 2 |
tr -d '\r' |
xargs -L1 -t adb uninstall