向 GPG 提供答案

向 GPG 提供答案

我想做这样的事情:

echo -e "trust\n5" | gpg --edit-key "Dor"

为了向 GPG 提供提前做出的答案。

但这不起作用。任何想法?

答案1

echo -e "trust\n5" | gpg --edit-key "Dor"不起作用,因为gpg不读取 的答案stdin,而是/dev/tty直接打开进行阅读。

这可以解决expect,一种用于自动化交互式应用程序的工具。

答案2

正如 Thomas Nyman 回答的那样,解决方案是使用expect或类似的工具。

不幸的是,expect它可能很难学习和使用,并且学习一门只能用于一项任务的语言需要投入大量的时间和精力。您可能会发现使用 Perl 或 Python 更容易(从长远来看也更有用),它们都具有可用于执行与expect.

对于 Perl 来说,那就是预计下午

对于 Python,请查看预期

这两个版本可能已经为您的 Linux 发行版打包了 - 例如,在 debian 中,它们是libexpect-perlpython-pexpect

顺便说一句,虽然它与您的问题没有特别相关,但值得注意的是 Perl 也有专门为expect通过网络连接执行类似操作而设计的库/模块 - 例如 perlNet::SSHNet::Telnet模块。 Python 有类似的库。

相关内容