如何将命令输出保存到变量

时间:2019-06-23 19:26:54

标签: variables tcl expect

我正在用Expect编写脚本,并希望将命令的输出保存在变量中。那可能吗? 命令是

echo "text here"| base64

我知道我可以使用“ set”设置变量,但是

set var ["echo text here| base64"]

set var [ spawn "echo text here| base64"]

不起作用。这样,我只是保存字符串而不是输出。

1 个答案:

答案 0 :(得分:3)

exec命令返回命令的输出。这样就可以将其设置为变量:

set var [exec echo "text here" | base64]

但是,您可以避免使用echo

set var [exec base64 << "text here"]

在Tcl 8.6中,您可以完全跳过运行外部程序的步骤:

set var [binary encode base64 "text here"]

还有a base64 encoder in Tcllib

package require base64
set var [base64::encode "text here"]