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

标签 linux bash expect

我有以下在命令行上运行良好的场景

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

正在打印文件abc的内容

现在同样我想使用 Expect 执行

我做了如下

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

现在我想如下捕获一些变量中的值

set A_Value = $value

但出现错误无法读取“值”:没有这样的变量

我对 expect 还是第一次尝试,所以谁能告诉我如何实现同样的目标。

谢谢

最佳答案

请记住,expect 只是一个为您键入键的机器人。 Expect 对它正在自动化的过程的内部工作没有任何特别的了解。

你被困在做这样的事情:捕获不包括你发送的命令和提示的输出:

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

关于linux - 如何使用 Expect 将命令的返回值分配给其他变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421847/

相关文章:

linux - 在 buildroot 中使用构建后脚本

linux - 为什么不能在变量赋值中使用通配符模式?

bash - 为什么我不能在 bash 脚本中使用作业控制?

linux - 多次复制的文件内容

linux - 在 SSH 连接中使用 Expect 脚本发送密码命令不起作用

python - 如何在 python 中检查命令行参数是否为文件?

linux - vim - 通过执行命令在 shell 中维护 session

bash - 重命名/移动 (mv) 以名称开头的多个文件

linux - 在 Bash 中使用 'expect' 以任何顺序响应

linux - 将多个变量从 Bash 脚本传递到 Expect 脚本