次の bash スクリプト (script.sh) があります。
#!/bin/bash
read -p "Remove? (y|n): " answer
echo "You answered '$answer'."
私はexpectを使ってそれを運転したいと思います。次のスクリプトがあります (expect.exp、同じディレクトリにあります):
#!/usr/bin/expect -f
set timeout -1
spawn -noecho ./script.sh
expect "^Remove"
send "y\r"
しかし、期待どおりに機能しません(しゃれが意図されています)。結果は次のとおりです。
~/Playground$ ./expect.exp
Remove? (y|n): ~/Playground$
そのため、expect スクリプトは最初の 'expect "^Remove"' 行で何らかの形で失敗し、すぐに終了し、残りの script.sh は実行されません。ここで何が間違っていますか?オンラインで見つけた基本的なチュートリアル (ftp の例を含むもの) に従っています。Kubuntu 12.10でexpect 5.45を使用しています。
編集 したがって、最後に「interact」または「expect eof」を追加すると変更されます。しかし、私は何が起こったのか、そしてその理由はわかりません。何か助けはありますか?