我的代码中有以下部分期望代码:
set command "echo $output"
spawn bash
expect "$ "
send "$command\r"
expect "$command\r\n"
其中output
是从 获得的多行字符串$expect_out(buffer)
。
我得到输出:
$ echo this
this
$ is
is: command not found
$ a multiline
a: command not found
$string
有什么方法可以在单个序列中获取上述字符串,就像我们在 bash 上回显多行字符串一样?我使用 echo 是因为我想稍后用管道进行一些 Bash 后处理。
答案1
您需要引用远程 shell 的字符串。
set command "echo \"$output\""
如果字符串本身可能包含双引号字符,则还有更多工作要做。