簡體   English   中英

curl 在 bash 中將雙引號替換為單引號

[英]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.

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