#android #shell #sqlite #escaping #adb
#Android #оболочка #sqlite #экранирование #adb
Вопрос:
Вот что работает для конкретного случая:
adb shell sqlite3 /data/data/com.company.product.contents/databases/contents.db "update items set kind=1234 where key = 'contents:com.company.service.exampleapp'"
Но из-за различных соглашений об именах пакетов я никогда не уверен, каким будет точное имя пакета / ключ, поэтому я хочу использовать подстановочный знак. У меня это не работает:
adb shell sqlite3 /data/data/com.company.product.contents/databases/contents.db "update items set kind=1234 where key like '%exampleapp%'"
Я получаю команду echo’d обратно как: «… где клавиша типа «…»
Независимо от того, что я делаю, включая использование escape-символов и различных комбинаций одинарных / двойных кавычек, он также игнорирует все, что находится после знака подстановки / процента.
Комментарии:
1. Среда вашего хост-КОМПЬЮТЕРА (ОС / оболочка / язык программирования, если есть) также имеет значение для правильного экранирования.
2. Да, извините, я просто использую это в командной строке Windows.
3. Это сработало. Спасибо.