Проблема с решением MarkusQ состоит в том, чтобы знать, какие символы являются специальными в двойных кавычках - их довольно много, в том числе обратные тики, открывающие доллар скобки, переменные доллара и т.д.
Я бы предположил, что лучше заключить строку в одинарные кавычки; затем каждая отдельная кавычка внутри строки должна быть заменена на кавычку последовательности, обратную косую черту, кавычку, кавычку:
sqlite3.bin contacts.db 'select * from contacts
where source = "Nancy'\''s notes"'
Первая кавычка в замене завершает текущую строку в одинарных кавычках; кавычка с обратной косой чертой представляет собой буквальную одинарную кавычку, а последняя кавычка начинает новую строку с одинарными кавычками. Кроме того, это работает с оболочками Bourne, Korn, Bash и POSIX в целом. (C Shell и производные имеют более сложные правила, требующие обратной косой черты, чтобы избежать перевода строки и т. Д.)