簡體   English   中英

curl命令中$'{}'的含義是什么

[英]What does the $'{}' mean in curl command

我想知道當我發送POST時curl命令中的$是什么意思。

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

此外,我試圖在我的shell腳本中參數化myvalue ,但是我無法做到。 有什么建議?

在將shell傳遞給curl之前,shell會解釋$'{\\n"some.*.something": "myvalue"\\n}'

$'...'是所謂的ANSI C字符串 它們以雙引號字符串 "..."單引號字符串 '...'旁邊的shell語言存在。

由於數據本身 - 似乎是json - 包含雙引號,因此雙引號字符串不能用於包裝數據而不轉義數據本身中的雙引號。 意思是它需要看起來像這樣:

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

基本上單引號字符串可用於避免逃避"

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

但由於數據包含換行符轉義序列\\n並且轉義序列不會在單引號字符串中擴展,因此問題中示例的作者使用ANSI C字符串$''

使用ANSI C字符串可以獲得兩者:它們可以避免轉義數據中的雙引號,並且仍然可以擴展換行符轉義序列。

shell擴展后,對於curl,數據如下所示:

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

進一步閱讀: https//www.gnu.org/software/bash/manual/html_node/Quoting.html

我還是不知道$'{}'是什么意思。 但是,我確實將myvalue設置為參數化。

"{\"some.*.something\":\"${myValueParamerterized}\"}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM