将带空格的字符串传递到bash脚本并在字符串串联中使用

时间:2019-11-04 14:54:44

标签: bash

我对bash脚本有一个参数,该参数可以是带空格的字符串。我如何在字符串连接中使用它,如下所示:

#!/usr/bin/env bash

curl -X POST -H 'Content-type: application/json' \
--data '{"text":"'$1'"}' https://hooks.slack.com/services/<rest of URL secret!>

从cmd行开始:

$./myscript.sh oneword

效果很好。但是,如果我传递带空格的字符串:

$./myscript.sh "two words"

curl: (3) [globbing] unmatched close brace/bracket in column 5
invalid_payload%  

我尝试了各种引用方式将其正确连接,但无济于事。谢谢

1 个答案:

答案 0 :(得分:1)

您还需要在JSON有效负载中引用$1

curl -X POST -H 'Content-type: application/json' \
--data '{"text":"'"$1"'"}' https://hooks.slack.com/services/<rest of URL secret!>