
我想做這樣的事情:
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-perl
和python-pexpect
。
順便說一句,雖然它與您的問題沒有特別相關,但值得注意的是 Perl 也有專門為透過expect
網路連接執行類似操作而設計的庫/模組 - 例如 perlNet::SSH
和Net::Telnet
模組。 Python 有類似的函式庫。