我正在尝试使用expect
与bash
脚本交谈,但我缺少一些东西。我的脚本是:
#!/bin/bash
echo -n "foo? "
read
echo $REPLY
和我的expect
脚本是:
#!/usr/bin/expect
spawn ./script.sh
expect "foo? "
send "barrn"
但是,当我运行expect
脚本时,我从未看到bar
。我在这里缺少什么?
愚蠢的我,我需要将 interact
添加到我的 expect
脚本中,以便可以与脚本"互动":
#!/usr/bin/expect
spawn ./script.sh
expect "foo? "
send "barrn"
interact
我在问这个问题后两分钟在这里找到了答案。
我对expect
语法不太熟悉,但是您值得尝试autoexpect
:
autoexpect ./script.sh
它将运行script.sh
,并且在运行它之后,将在当前目录中创建期望脚本script.exp
。
之后,如果您需要在其中调整某些内容,则可以编辑它。