1

expectを使用してスクリプトと対話しようとしていbashますが、何か不足しています。私のスクリプトは次のとおりです。

#!/bin/bash
echo -n "foo? "
read
echo $REPLY

私のexpectスクリプトは次のとおりです。

#!/usr/bin/expect
spawn ./script.sh
expect "foo? "
send "bar\r\n"

しかし、スクリプトbarを実行してもわかりません。expectここで何が欠けていますか?

4

2 に答える 2

2

interactばかげて、スクリプトとの「対話」を終了できるように、expectスクリプトに追加する必要がありました。

#!/usr/bin/expect
spawn ./script.sh
expect "foo? "
send "bar\r\n"
interact

この質問をしてから 2 分後に、ここで答えを見つけました。

于 2012-10-19T20:23:58.620 に答える
1

私は構文に精通していませんexpectが、試してみる価値がありますautoexpect:

autoexpect ./script.sh

実行されscript.sh、実行が終了するとscript.exp、現在のディレクトリに期待スクリプトが作成されます。

何かを調整する必要がある場合は、後で編集できます。

于 2012-10-19T20:24:19.960 に答える