ユーザーの一部の入力に依存するスクリプトの標準出力をどのようにキャプチャしますか?

ユーザーの一部の入力に依存するスクリプトの標準出力をどのようにキャプチャしますか?

続行するには、パスワードを入力する必要があるスクリプトがあります。

bash-3.2$ ./script.sh <parameter_list>
Enter the password for the Database: 
..
..

私はスクリプトにパスワードを安全に渡しながら、スクリプトの標準出力をログファイルにキャプチャすることに興味があります。

次のように標準入力にパスワードを渡してみました。

bash-3.2$ echo "<password>" > /secure/path/password.txt
bash-3.2$ ./script.sh <parameter_list> < /secure/path/password.txt

しかし、これはうまくいかないようです。その場合は、単にtee出力をログファイルにリダイレクトできます。

ベストアンサー1

私の考えでは、あなたがしたいと思いますexpect。このツールは、ユーザー入力を必要とするコマンドと対話的に機能できます。もちろん、最大の罠は何をすべきかを知るべきだということだ。予想される

はい(次から借りるhttp://www.thegeekstuff.com/2010/10/expect-examples/)

#!/usr/bin/expect

set timeout 20

spawn "./hello.pl"

expect "hello"
send "no match : <$expect_out(buffer)> \n"
send "match :  <$expect_out(0,string)>\n"

interact

おすすめ記事