![](/img/trans.png)
[英]Single quote in bash script curl command keeps getting converted to double quote
[英]curl replaces double quotes to single quote in bash
我有這個變量
TOKEN="Authorization: Bearer eyJ0eXA"
當我將它添加到命令 curl 時
curl -H "$TOKEN" GET 'https://x.x.x.x/service/' --header 'Accept-Language: en'
運行時,它將 -H 后的"替換為'以使命令類似於
curl -H 'Authorization: Bearer eyJ0eXA' GET https://x.x.x.x/service/ --header 'Accept-Language: en'
如何避免這種情況並使命令以“
我猜你看到的是set -x
或其他一些 shell 調試的結果。
在這種情況下,它是完全正確的。 $TOKEN
已被評估並替換為其價值。 單引號向 shell 表明不對值進行進一步處理。 它們既不會被curl
看到,也不會傳遞給目標主機。
沒有要替換的引號。 它們已經被 shell 刪除了:
TOKEN="Authorization: Bearer eyJ0eXA"
echo $TOKEN
Authorization: Bearer eyJ0eXA
如果您想在字符串周圍加上雙引號,請更改為:
TOKEN='"Authorization: Bearer eyJ0eXA"'
echo $TOKEN
"Authorization: Bearer eyJ0eXA"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.