簡體   English   中英

Bash在curl命令中添加了額外的單引號,將其定義為“…$'…'…”

[英]Bash adding extra single quotes to curl command defined as “…$'…'…”

這與防止bash將單引號添加到變量輸出非常相似,但是這些答案都沒有幫助我。

該腳本:

set -ex

curl_headers=(
    --silent
    "--form release_description=$'\n new \n'"
)

curl "${curl_headers[@]}" "example.com"

返回此輸出:

+ curl_headers=(--silent "--form release_description=$'\n new \n'")
+ curl --silent '--form release_description=$'\''\n new \n'\''' example.com

這是我不想做的兩件事。 它在--form之前添加了一個刻度,並且在我的release_description轉義了單個刻度

理想的結果是:

curl --silent --form release_description=$'\n new \n' example.com

如何獲取刪除轉義序列和添加單個刻度的信息?

單引號只是跟蹤模式(通過-x選項)顯示字符串的方式。 它根本不影響您的命令。 主要問題是--form兩個單獨的參數( --form及其參數)組合為一個。

正確的腳本應該是這樣的

set -ex

curl_headers=(
    --silent
    --form
    release_description=$'\n new \n'
)

curl "${curl_headers[@]}" "example.com"

暫無
暫無

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

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