我基本上是用一个简单的shell脚本来测试Curl,不幸的是当我创建curl命令时,因为我以编程方式传递参数,它将我的字符串中的每个单词作为单个参数读取,并尝试将它们解析为主机,我需要按原样发送整个消息。这是代码:
Name="Bob"
LISTENER_URL='http://httpbin.org/post'
PAYLOAD="Hello my name is" $NAME
curl --request POST --url $LISTENER_URL --data $PAYLOAD --insecure
输出将curl发送“Hello”到url,然后无法解析主机:
my
name
is
bob
我确实尝试了以下修改,但无济于事:
curl --request POST --url $LISTENER_URL --data '"'+$PAYLOAD+'"' --insecure
curl --request POST --url $LISTENER_URL --data '"'$PAYLOAD'"' --insecure
还尝试重新声明变量,如下所示:
PAYLOAD="\"$PAYLOAD\""
答案 0 :(得分:5)
要分配带空格的值,您需要引用或反斜杠:
PAYLOAD="Hello my name is $NAME"
同样,要将变量扩展为一个单词,请双引号:
curl --request POST --url "$LISTENER_URL" --data "$PAYLOAD" --insecure