捕获curl子shell的输出?

时间:2016-02-01 18:38:10

标签: bash curl

我有这样的卷曲命令:

curl -v --silent --tlsv1.1 https://google.com/ 2>&1 | grep TLS

我想在变量中捕获该命令的输出。通常情况下,我会使用子shell来执行此操作,但它似乎无法正常工作。

这是我想要做的事情:

OUT=$(curl -v --silent --tlsv1.1 https://google.com/ 2>&1 | grep TLS)
echo $OUT

但该命令输出以下内容(如果我在一个目录中,其中包含一个名为&#34的文件; UNEXPECTED.TXT")。

  

使用TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA进行UNEXPECTED.TXT TLS 1.0连接

所以它似乎做了当前目录的目录列表,然后将我的输出追加到它的末尾。

谢谢!

1 个答案:

答案 0 :(得分:2)

使用引号:

echo "$OUT"
* TLS 1.1 connection using TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

由于变量OUT有一个起始*没有引号 shell正在将*扩展到当前路径中的所有文件/目录并列出所有文件/目录。