【问题标题】:Appending Quotes to two Concatenated strings in Bash在 Bash 中将引号附加到两个连接的字符串
【发布时间】:2018-09-13 08:03:27
【问题描述】:

我基本上是在用一个简单的 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 向 url 发送“Hello”,然后无法解析主机:

my
name
is
bob

我确实尝试了以下修改,但无济于事:

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

还尝试像这样重新声明变量:

PAYLOAD="\"$PAYLOAD\""

【问题讨论】:

  • 引用扩展--data "$PAYLOAD" 等怎么样? :)

标签: string bash curl concatenation


【解决方案1】:

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

PAYLOAD="Hello my name is $NAME"

类似地,要将变量扩展为一个单词,请将其双引号:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2013-07-31
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多