Как я могу использовать подстановочный знак внутри команды sqlite3, которая находится внутри оболочки adb?

#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. Это сработало. Спасибо.