2012-10-19 44 views
1

我正在尝试使用expectbash脚本交谈,但我错过了一些东西。我的脚本是:expect vs. bash read

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

和我expect脚本是:

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

但我从来没有看到bar当我运行该脚本expect。我在这里错过了什么?

+0

您不需要发送'\ n',只需要'\ r' - 您正在模拟“点击回车”。 –

回答

2

阿呆,我需要添加interactexpect脚本,以便它可以完成“互动”的剧本:

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

我找到了答案问这个问题here两分钟后。

1

我不熟悉以及与expect语法,但是你值得尝试autoexpect

autoexpect ./script.sh 

它将运行script.sh之后你会完成运行它的预期脚本script.exp将在当前目录中创建。

之后,你可以编辑它,如果你需要调整它的东西。