从adb shell使用sqlite3时,光标键不起作用

当通过adb shell箭头键使用sqlite3时,不是将光标移动到所需位置或召唤历史工具,而是在屏幕中显示以下内容: ^[[A^[[B^[[C^[[D

我正在使用Mac OS X,我尝试过TerminaliTerm终端模拟器。

有人知道如何解决这个问题吗?

要允许在控制台程序的输入中进行编辑和历史记录,该程序必须与readline库链接。

sqlite3工具确实支持readline,但在Android上,readline支持已被禁用。 (可能是因为readline仅在GPL下获得许可。)

解决方法是使用具有readline支持的本地SQLite版本。

  1. 将数据库文件从设备复制到本地计算机:
    adb pull

  2. 使用本地版本的SQLite访问数据库文件:
    sqlite3

  3. 如果您进行了更改,则可以将它们传输到设备。 将本地数据库文件从本地计算机复制到设备:
    sqlite3

您可以在adb shell中使用以前的命令function。 所以只是adb shell。 然后cd到/ data / data // databases目录。 从这里运行(例如):sqlite3“select * from”

然后你可以用向上箭头重做那个命令。 一种hack,但比在sqlite3交互式提示符中重新键入命令更好。