3

現在、パスワードを渡すことを期待して使用しているため、座って同じパスワードを何度も入力しなくても、スクリプトが自動的に実行されます。

重要: これがどれほど大きなセキュリティ リスクであるか、または ssh キーをどのように使用すべきかについてコメントしないでください。可能であればそれらを使用しますが、使用しなければならないセットアップでは許可されません。

私のコードは次のようになります。

#!/bin/sh

PASS=mypassword

/usr/bin/expect -c "
spawn python Tools/python/install.py
expect -nocase \"password:\" {send \"$PASS\r\"; interact}
"

私が抱えている問題は、install.py が同じパスワードを何十回も入力するように要求することです。最初のプロンプトのパスワードは自動入力のみを期待しているようです。

最初だけでなく、12回すべてパスワードを入力するように動作を変更する方法はありますか?

4

1 に答える 1

7

少しプログラミングをする必要があります。幸いなことに、答えは非常に簡単です。

#!/bin/sh

PASS=MyPassword
export PASS

/usr/bin/expect -c '
    spawn python Tools/python/install.py
    expect {
        -nocase "password:" {
            send "$env(PASS)\r"
            exp_continue
        }
        "somthing_else_that_indicates_you're_ready_to_interact"
    }
    interact
'

シェルの引用も少しきれいにしました。

于 2012-07-23T16:00:10.423 に答える