我正在编写一个必须传递给bash一个字符串的小软件。 问题是bash无法处理字符“,',`。 我做了一个强力软件力gpg(如果我只使用数字和字母,这项工作没有问题),但是当我的软件生成一个包含一个(或多个)这些字符的字符串时,我收到一些bash错误。 然后我需要逃避字符串中的每个markquotes。 所以例如,如果软件生成字符串a“bc'1,我需要传递这个字符串来bash a”bc \'1。 但我不知道该怎么做。
这是代码
subprocess.call('gpg -d --output '+decripted+' --passphrase "'+password+'" '+target+' 2>/dev/null', shell=True)
我可以使用sed吗?我不知道如何加入sed。 我还想过将生成的密码保存到文件中,然后从文件中读取字符串
cat fileWithPassword | gpg -d --output OUTPUT_FILE -- passphrase-fd 0 TARGET_FILE
我注意到以这种方式(来自bash)工作,但我认为这并不是真正有效的保存和读取文件。 有没有办法逃脱每个markquote withoud将它保存在文件中?