У вас есть два варианта, либо использовать одиночные кавычки 'passphrase"withquotes'
(но тогда вам больше не разрешено иметь одинарные кавычки в парольной фразе). В качестве альтернативы вам придется экранировать символ кавычки (и другие символы со специальными значениями): "passphrase\"withquotes"
.
Вы объясняете, что пишете какую-то программу, которая требует обработки парольной фразы. Все разумные языки программирования должны иметь некоторую функцию или библиотеку, которая предоставляет готовые функции для экранирования bash.
В любом случае, вы никогда не должны передавать парольную фразу в качестве параметра (в любом случае вы используете неправильный аргумент, посмотрите параметры --passphrase...
на справочной странице GnuPG): все остальные пользователи в системе могут читать все процессы ' командные строки, включая секретную фразу-пароль! Вместо этого используйте --passphrase-fd 0
и присоедините ваше приложение к STDIN GnuPG (как вы сделали бы с конвейером в командной строке), и передайте фразу-пароль в качестве ввода.
Используя GnuPG 2.1 и выше, вы больше не можете использовать опции --passphrase...
без проблем. Посмотрите на «Почему GPGME / GnuPG использует пинентри для ввода пароля?" Для дальнейшего обсуждения.