
私は次のようなことをしたいと思っています:
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
または同様のツールを使用することです。
残念ながら、は習得も使用も難しく、1 つのタスクにしか使用できない言語を習得するには、かなりの時間と労力がかかります。expect
と同じことを実行できるライブラリを備えた Perl または Python を使用する方が簡単で、長期的にはより便利であることがわかるかもしれません。expect
Perlの場合は期待する
Pythonについては、期待する
これらは両方とも、おそらく Linux ディストリビューション用にすでにパッケージ化されています。たとえば、Debian では、 とlibexpect-perl
ですpython-pexpect
。
expect
ところで、あなたの質問とは特に関係ありませんが、Perl にも、ネットワーク接続を介して同様のことを行うために特別に設計されたライブラリ/モジュール (例: perlNet::SSH
およびモジュール) があることは注目に値しますNet::Telnet
。Python にも同様のライブラリがあります。