У меня возникли трудности с скриптом Perl, который вызывается из cron.Экранирование скобок при отправке кодовой фразы GPG в Perl-скрипт
Одним из аргументов для сценария является кодовая фраза GPG. Это позже интерполируется в строку, которая отправляется в оболочку.
Эта конкретная кодовая фраза содержит открытые круглые скобки, и сценарий завершается с «ошибкой синтаксиса около неожиданной лексемы` (»ошибка
Это обижая часть фразы:.
m3(ÃÝ4úŤ;:q!
I попробовали однократное и двойное цитирование, прежде чем значение будет использовано в скрипте, но это не влияет.
Фраза работает корректно при вызове GPG непосредственно из оболочки, только когда она получает интерполяцию в следующее:
`gpg --passphrase $gpgpp --batch -o $gpgofile -d $file`;
Где $ gpgpp - это переменная passphrase.
Каков правильный способ избежать этого и другие потенциально проблематичные символы?
кстати, обратно-клещи используются для захвата вывода команды оболочки. Если вы не хотите этого вывода и хотите просто запустить команду, вы должны использовать 'system()' вместо этого. –
Никогда не делайте этого на многопользовательской машине - все остальные пользователи могут видеть, какие параметры вы передали процессу. Вместо этого используйте '--passphrase-file' или' --passphrase-fd'. –
@JensErat это не многопользовательская машина. Благодарю вас за это предложение. –