Клавиши курсора не работают при использовании sqlite3 из оболочки adb

при использовании sqlite3 через adb shell клавиши со стрелками, вместо перемещения курсора в нужное положение или вызова объекта истории, на экране отображается следующее:^[[A, ^[[B, ^[[C, ^[[D.

я использую Mac OS X, и я пробовал терминал и iTerm эмуляторы терминалов.

кто-нибудь знает как это исправить?

3 ответов


чтобы разрешить редактирование и историю на входе консольной программы, эта программа должна быть связана с readline библиотека.

на sqlite3 инструмент поддерживает readline, но на Android поддержка readline была отключена. (Вероятно, потому, что readline лицензируется только под GPL.)


обходным путем было бы использовать локальную версию SQLite с поддержкой readline.

  1. скопировать файл базы данных с вашего устройства на локальном компьютере:
    adb pull <database-file-on-device>

  2. используйте локальную версию SQLite для доступа к файлу базы данных:
    sqlite3 <database-file-on-local>

  3. Если вы внесли изменения, вы можете перенести их на устройство. Скопируйте файл локальной базы данных с локального компьютера на компьютер устройство:
    sqlite3 <database-file-on-local> <database-file-on-device>


вы можете использовать предыдущую функциональность команды в оболочке adb. Так что просто adb shell. Затем компакт-диск в каталог/data/data/ / databases. Отсюда запустите (например): sqlite3 "select * from "

затем вы можете использовать стрелку вверх, чтобы повторить эту команду. Вид взлома, но лучше, чем повторный ввод команды внутри интерактивной подсказки sqlite3.