gpt4 book ai didi

linux - Perl 脚本使用 gpg 与 CLI gpg?

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:04 27 4
gpt4 key购买 nike

作为 perl 脚本的一部分,我根据从电子邮件中获得的周期数从网站下载一些文件。我使用正则表达式找到合适的周期数,将其附加到 url 并从所述 url 获取加密文件。然后我将加密文件打印到临时文件,并使用 gpg 解密该临时文件,将输出转储到另一个位置。清澈如泥?

这里是事情变得有趣的地方。这是用于解密临时文件的命令:

my $cmd = 'cat ~/.gpgkey | gpg --passphrase-fd 0 --no-tty --batch --quiet 
--no-mdc-warning --decrypt $filename >> ~/SAT.SCR';

如果您注意到,该命令使用了一个 $filename 变量。我已单独确认此变量指向正确的文件。但是,此命令会产生以下错误:

gpg: decrypt_message failed: Unknown system error

但是,如果我直接从 shell (csh) 运行上述命令,将 $filename 替换为实际文件,它会完美运行。我们使用的是 gpg 2.0.9。

有谁知道为什么从 perl 脚本而不是 shell 调用时解密失败?

最佳答案

Perl 不会在带有单引号的字符串中插入变量。尝试使用带双引号的字符串:

my $cmd = "cat ~/.gpgkey | gpg --passphrase-fd 0 --no-tty --batch --quiet 
--no-mdc-warning --decrypt $filename >> ~/SAT.SCR";
system($cmd);

参见 Quote and Quote-like Operators in perlop获取更多信息。

关于linux - Perl 脚本使用 gpg 与 CLI gpg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16842447/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com