1

次のようなbashコードがあります。

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

このコードは、パスワードを送信した後、ハングするという事実を除いて、機能しているようです。このコードブロックの後に、スクリプトで実行したいコードがさらにあります。このコードブロックの下の行の実行を継続するために、bashスクリプトに戻ることを期待する方法はありますか?

4

1 に答える 1

2

(この質問に正式に答えるだけです)...

interactコマンドがあなたを噛んでいると思います。マニュアルページから:

対話により、現在のプロセスの制御がユーザーに与えられるため、キーストロークが現在のプロセスに送信され、現在のプロセスのstdoutとstderrが返されます。

私はこれらのいずれかを試してみます:

  • interactコマンドを削除します
  • &またはを使用してバックグラウンドでコマンドを発行しますscreen

あなたのコメントによると、前者がうまくいったようです。

于 2012-09-04T15:49:54.550 に答える