我正在尝试使用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
。我在这里缺少什么?
答案 0 :(得分:2)
愚蠢的我,我需要将interact
添加到我的expect
脚本中,以便它可以完成与脚本的“交互”:
#!/usr/bin/expect
spawn ./script.sh
expect "foo? "
send "bar\r\n"
interact
在提出这个问题两分钟后我找到了答案here。
答案 1 :(得分:1)
我不熟悉expect
语法,但您值得尝试autoexpect
:
autoexpect ./script.sh
它将运行script.sh
,在您完成运行后,将在当前目录中创建一个期望脚本script.exp
。
如果您需要调整内容,可以编辑它。