我正在尝试下面的代码来获取响应正文和状态:
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”
是什么原因?如何纠正这个问题?
答案 0 :(得分:0)
您需要将变量括在双引号中,以防止bash将其拆分为单独的标记。
尝试
echo $(validateUpdate "$configData" "$response")
甚至更好(回声没有用,因为@tripleee指出;此外花括号提高了可读性):
validateUpdate "${configData}" "${response}"
在你的功能中使用相同的东西
echo "$2"