在Android ADB Shell中运行Shell脚本

在Android ADB Shell中运行Shell脚本,第1张

概述我正在尝试创建一个脚本,以通过adbshell从Android模拟器中查找和删除我的应用.这就是我得到的:adbshell"cddata/appforappincom.mycompany.*.apk;doecho$appbundle=$(echo$app|sed's/-[0-9]//g')echo'bundlenameis$bundle'if['$bundle

我正在尝试创建一个脚本,以通过adb shell从Android模拟器中查找和删除我的应用.

这就是我得到的:

adb shell "cd data/appfor app in com.mycompany.*.apk;do    echo $app    bundle=$(echo $app | sed 's/-[0-9]//g')    echo 'bundle name is $bundle'    if [ '$bundle' != '' ];then        adb uninstall $bundle    else        echo 'No apps found'    fidoneexit"

但是它似乎没有按预期工作.

>我的for循环不会遍历任何内容.如果我在外壳中完全按照上面的命令手动运行命令,则它可以工作,但是当我从shellscript运行命令时,for循环将看不到文件或任何内容.尽管如果添加“ ls”,它会正确打印文件夹的内容.
> echo $app不输出任何内容(空字符串),并且;
> echo’bundle name is $bundle’打印捆绑包名称为.

因此,它显然永远不会进入我的if块,而落入我的else子句中.

我究竟做错了什么?我对shell脚本不是很有经验,我会很感激任何想法.

我的目标是拥有一个shell函数,可以调用它来自动执行从模拟器中删除应用程序的过程,而无需手动拖动和卸载它.其他想法也非常受欢迎.

谢谢!

解决方法:

您不应该真正浏览/ data / app文件夹.如果要使用单个adb命令卸载名称与com.mycompany模式匹配的多个软件包,请使用:

adb shell "pm List packages com.mycompany | cut -c9- | xargs -n 1 sh /system/bin/pm uninstall"
总结

以上是内存溢出为你收集整理的在Android ADB Shell中运行Shell脚本全部内容,希望文章能够帮你解决在Android ADB Shell中运行Shell脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1093400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存