[英]How to set command line argument using a variable in bash
我將命令行參數設置如下:
$TOKENARG='Authorization: Bearer 9042f9a3caacc63419be489aefec02a5eae338c33'
curl -v -X DELETE -H $(echo $TOKENARG) http://localhost:3001/api/v1/articles/3
預期的結果是:
curl -v -X DELETE -H 'Authorization: Bearer 9042f9a3caacc63419be489aefec02a5eae338c33' http://localhost:3001/api/v1/articles/3
但是,當我運行以上命令時,它無法按預期運行,並返回以下消息:
curl:(6)無法解析主機:Bearer
*重建URL到:9042f9a3caacc63419be489aefec02a5eae338c33
無法解析主機:9042f9a3caacc63419be489aefec02a5eae338c33
如何使用變量傳遞參數?
由於不引用命令替換,因此該字符串分為三個單詞Authorization:
, Bearer
和9042f9a3caacc63419be489aefec02a5eae338c33
。 為了防止這種情況,您可以引用它:
curl -v -X DELETE -H "$(echo $TOKENARG)" http://localhost:3001/api/v1/articles/3
但你並不需要echo
和命令替換所有: $(command)
具有輸出相同的command
,所以你可以使用
curl -v -X DELETE -H "$TOKENARG" http://localhost:3001/api/v1/articles/3
旁注:所有大寫變量名稱應僅用於環境變量,例如參見POSIX規范 (第四段),因此更好
$tokenarg='Authorization: Bearer 9042f9a3caacc63419be489aefec02a5eae338c33'
curl -v -X DELETE -H "$tokenarg" http://localhost:3001/api/v1/articles/3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.