簡體   English   中英

如何在bash中使用變量設置命令行參數

[英]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:Bearer9042f9a3caacc63419be489aefec02a5eae338c33 為了防止這種情況,您可以引用它:

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.

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