从脚本运行adb shell命令而不退出shell

时间:2011-11-25 10:33:15

标签: android sqlite shell adb

我正在尝试使用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"

提前致谢!

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

如何使用命令adb shell

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

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