Запустить команду sqlite3 из командного файла? - PullRequest
1 голос
/ 22 декабря 2011

Я хочу упростить доступ к базам данных sqlite на эмуляторе, поэтому я создал пакетный файл, который успешно запускает первую строку, но есть ли способ запустить вторую строку из пакетного файла?(На данный момент adb уже запущен, поэтому он будет выполнять команду в оболочке.)

adb -s emulator-5554 shell
# sqlite3 /data/data/com.myProject/databases/myDatabase

ОБНОВЛЕНИЕ: По какой-то причине

adb -s emulator-5554 shell sqlite3 /data/data/com.myProject/databases/myDatabase

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

Отдельные строки работают нормально:

adb -s emulator-5554 shell 
sqlite3 /data/data/com.myProject/databases/myDatabase

, но это не работает в пакетном файле (команда sqlite3 выполняется слишком рано).

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

Вы можете использовать перенаправление ввода для отправки потока команд в АБР:

adb -s emulator-5554 shell <a.txt

Где a.txt содержит

sqlite3 /data/data/com.myProject/databases/myDatabase
logout

Это масштабируется лучше. a.txt может вырасти настолько большим, насколько вы захотите.

1 голос
/ 22 декабря 2011

На целевом устройстве вы можете запускать не только интерактивную оболочку, но и другие команды.Например:

adb -s emulator-5554 shell ls /sdcard

или

adb -s emulator-5554 shell sqlite3 /data/data/com..../database.db

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...