我正在尝试下面的代码来获取响应主体和状态:
read -ra result <<< $(curl -i --insecure \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-X POST --data "$configData" $openingNode"/voice/v1/updateWithPh")
status=${result[1]}
response=${result[@]}
echo $status
问题是-
我正确地获得了状态代码和响应正文。但是当我创建一个bash函数并将其作为参数发送时,响应体在函数中更改为**“HTTP/1.1”**,如下所示。
echo $(validateUpdate $configData $response)
函数的代码-
function validateUpdate(){
echo $1
echo $2
}
$2打印为**“HTTP/1.1”**
是什么原因呢?如何纠正这一问题?
2条答案
按热度按时间7vux5j2d1#
你需要将变量用双引号括起来,以防止bash将其拆分为单独的token。
尝试
或者更好(正如@tripleee指出的那样,echo是无用的;此外,花括号提高了可读性):
在你的函数中使用同样的东西
sycxhyv72#
使用这个: