secret.txt.gpg我有要解密的文件,以便内容存储在如下变量中:
TXT=$(gpg --decrypt secret.txt.gpg)\nRun Code Online (Sandbox Code Playgroud)\n但这样会添加很多额外的gpg: \xe2\x80\xa6行,其中包含有关密钥等的信息,如下所示:
gpg: encrypted with 4096-bit RSA key, ID xxxx, created xxxx\n "xx xx (xx) <xx@xx.xx>"\ngpg: Signature made xxx\ngpg: using RSA key xxx\n\xe2\x80\xa6\nSecret Message\nRun Code Online (Sandbox Code Playgroud)\n顺便一提:
\ngpg -d secret.txt.gpg > out.txt\nRun Code Online (Sandbox Code Playgroud)\n只是将内容写入文件。
\n如何仅捕获内容而不将其写入文件?
\n尽管@Roger的答案更好并解释了原因,但我可以使用以下方法来实现:
\nTXT=$(gpg --decrypt secret.txt.gpg > /dev/stdout)\nRun Code Online (Sandbox Code Playgroud)\n
小智 6
GPG 消息被写入 STDERR,这就是为什么通过管道将 STDOUT 传输到文件会忽略这些消息。
如果加密文件未签名,您通常可以通过提供开关来抑制有关加密的消息--quiet。如果文件已签名,您仍然会收到有关签名的消息。即使您提供了,--skip-verify您仍然会收到一条消息,轻轻地通知您签名验证已被抑制。
为了抑制所有这些消息,我建议您通过管道将 STDERR 传递给/dev/null,例如:
TXT=$(gpg --decrypt secret.txt.gpg 2>/dev/null)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5667 次 |
| 最近记录: |