$'{}'在curl命令中是什么意思

达山·科塔里(Darshan Kothari)

我想知道在发送POST时,curl命令中的$是什么意思。

例如 curl -X POST mydomain.com -d $'{\n"some.*.something": "myvalue"\n}'

我也试图myvalue在我的shell脚本中参数化,但是我做不到。有什么建议么?

hek2mgl

$'{\n"some.*.something": "myvalue"\n}'它被传递给卷曲之前得到由shell来解释。

$'...'所谓的ANSI C字符串它们在shell语言中位于双引号字符串 "..."单引号字符串 旁边'...'

由于数据本身(似乎是json)包含双引号,因此在不将双引号转义为数据本身的情况下,不能使用双引号字符串来包装数据。这意味着它需要如下所示:

"{\n\"some.*.something\": \"myvalue\"\n}"

基本上可以使用单引号引起来的字符串来避免转义"

'{\n"some.*.something": "myvalue"\n}'

但是由于数据中包含换行符转义序列,\n并且转义序列不会在单引号引起的字符串中扩展,因此问题的示例作者使用ANSI C字符串$''

使用ANSI C字符串,它们可以同时获得:它们可以避免转义数据中的双引号,并且仍然使换行符转义序列得到扩展。

外壳展开后,为了卷曲,数据如下所示:

{
"some.*.something": "myvalue"
}

进一步阅读:https : //www.gnu.org/software/bash/manual/html_node/Quoting.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章