【问题标题】:Run adb shell commands from script without exiting shell从脚本运行 adb shell 命令而不退出 shell
【发布时间】:2012-01-06 06:05:28
【问题描述】:

我正在尝试创建一个脚本来简化使用 sqlite 的数据检查。对我来说写起来很麻烦:

adb shell
sqlite /data/data/my.package.name/databases/mydatabse.db

每次我想检查数据库中的某些内容时(在数据库开发的开始阶段,这很常见),尤其是因为 TAB 完成似乎不起作用(至少对我而言)。所以我尝试写一个脚本来自动为我打开数据库,但是android文档明确指出:

shell [<shellCommand>] - Issues a shell command in the target emulator/device 
                         instance and then exits the remote shell.

所以我想知道是否有办法解决这个问题,以便我的 shell 继续运行,我可以使用 sqlite3 命令行程序。在here 的帮助下,我能够创建运行特定数据库查询的脚本,就像这样(但我想保持 sqlite 命令行程序运行):

#!/bin/bash
adb shell sqlite3 /data/data/my.package.name/databases/mydatabse.db "select * from someTable"

提前致谢!

【问题讨论】:

  • 分享一点关于 android 上可用的 shell/s 的信息。您使用的是 bash 还是 ??或特定于android的东西?虽然 shell 有 1.2K 的追随者,但可能有 1/2 或他们是 Windows 用户。如果 android shell 有一个特定的名称,最好包含它。将鼠标悬停在您的每个标签上以查看关注者的数量。 12个追随者似乎浪费了一个标签。祝你好运。

标签: android sqlite shell adb


【解决方案1】:

您可以尝试在 adb 命令周围添加引号,例如提到的here

adb shell "sqlite /data/data/my.package.name/databases/mydatabse.db"

确保您有权访问您的数据库(读/写)。

here 发布了一个用于转储数据库的 github 代码。直接链接:https://github.com/Pixplicity/humpty-dumpty-android/blob/master/humpty.sh

【讨论】:

【解决方案2】:

只使用命令 adb shell 怎么样

然后运行:sqlite /data/data/my.package.name/databases/mydatabse.db

这将使窗口保持打开状态,然后您只需向上推即可获取最后一个命令。

【讨论】:

    最近更新 更多