存储到bash变量时,cURL的输出已损坏[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

这是我直接从终端执行cURL时控制台输出的内容:

/# curl -ksi http://localhost/ 
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.6.2
Date: Sun, 14 Jan 2018 11:49:38 GMT
Content-Type: text/html
Content-Length: 160
Connection: keep-alive
Location: http://localhost/welcome/default
Cache-Control: private, max-age=0

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>

但是,如果我尝试将cURL的输出保存到变量,则其内容最终会看起来已损坏:

/# VAR=`curl -ksi http://localhost/`
/# echo $VAR
 </html>nter>nginx/1.6.2</center>er>d>fault

在这种情况下,我做错了什么?

bash curl newline carriage-return quoting
1个回答
0
投票

使用数组

var=( "$(curl -ksi http://localhost/)" )
echo "${var[@]}"

注意:不要使用像VAR这样的所有大写变量作为用户变量,因为它们是为shell环境保留的

© www.soinside.com 2019 - 2024. All rights reserved.