如何使用Expect将命令的返回值分配给其他变量

时间:2016-04-05 09:08:12

标签: linux bash expect

我有以下场景在命令行上正常工作

value=`cat /root/abc`
echo $value

正在打印文件abc的内容

现在我想用Expect执行

我做了如下

send "value=`cat /root/abc`\r"

现在我想在某个变量中捕获值,如下所示

set A_Value = $value

但收到错误can't read "value": no such variable

我是expect的新手并且第一次尝试,所以任何人都可以让我知道如何实现同样的目标。

由于

1 个答案:

答案 0 :(得分:0)

请记住,期望只是一个为您键入密钥的机器人。期望对其自动化过程的内部运作没有任何特殊的了解。

你很难做到这样的事情:捕获输出,不包括你发送的命令和提示:

send "echo \"\$value\"\r"
expect -re "echo \[^\r]+\r\n(.*)\r\n$prmpt $"
set file_contents $expect_out(1,string)