我正在尝试使用expect
与bash
脚本交谈,但我错过了一些东西。我的脚本是: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
。我在这里错过了什么?
我正在尝试使用expect
与bash
脚本交谈,但我错过了一些东西。我的脚本是: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
。我在这里错过了什么?
阿呆,我需要添加interact
我expect
脚本,以便它可以完成“互动”的剧本:
#!/usr/bin/expect
spawn ./script.sh
expect "foo? "
send "bar\r\n"
interact
我找到了答案问这个问题here两分钟后。
我不熟悉以及与expect
语法,但是你值得尝试autoexpect
:
autoexpect ./script.sh
它将运行script.sh
之后你会完成运行它的预期脚本script.exp
将在当前目录中创建。
之后,你可以编辑它,如果你需要调整它的东西。
您不需要发送'\ n',只需要'\ r' - 您正在模拟“点击回车”。 –