向 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 有類似的函式庫。

相關內容