Избегайте python setup.py test
и tests_require
, это старая фраза "особенность".
Это просто загружает тестовые файлы в директорию установки проекта, что редко случается с разработчиком! Это не очень хорошо работает в современных рабочих процессах CI с виртуальными средами, где вы хотите, чтобы ваши зависимости были установлены в пакетах сайта.
Рекомендованный способ сделать это с помощью setuptools в наши дни - с помощью тега extras_require
. . См. здесь для примера.
Проблема с решением MarkusQ состоит в том, чтобы знать, какие символы являются специальными в двойных кавычках - их довольно много, в том числе обратные тики, открывающие скобки доллары, долларовые переменные и т. д.
Я бы посоветовал заключить строку в одинарные кавычки; затем каждая отдельная кавычка внутри строки должна быть заменена на кавычку последовательности, обратную косую черту, кавычку, кавычку:
sqlite3.bin contacts.db 'select * from contacts
where source = "Nancy'\''s notes"'
Первая кавычка в замене завершает текущую строку в одинарных кавычках; кавычка с обратной косой чертой представляет буквальную одинарную кавычку, а последняя кавычка начинает новую строку в одинарных кавычках. Кроме того, это работает с оболочками Bourne, Korn, Bash и POSIX в целом. (C Shell и производные имеют более сложные правила, требующие обратной косой черты, чтобы избежать перевода строки и т. Д.)
Если bash - ваша единственная проблема, заключите все это в двойные кавычки, а затем избегайте всего особенного в двойных кавычках bash с одной обратной косой чертой. Например:
sqlite3.bin contacts.db "select * from contacts where source = \"Nancy's notes on making \$\$\$\""