在Bash中将引号附加到两个连接字符串

时间:2018-04-03 21:36:49

标签: string bash curl concatenation

我基本上是用一个简单的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\""

1 个答案:

答案 0 :(得分:5)

要分配带空格的值,您需要引用或反斜杠:

PAYLOAD="Hello my name is $NAME"

同样,要将变量扩展为一个单词,请双引号:

 curl --request POST --url "$LISTENER_URL" --data "$PAYLOAD" --insecure