簡體   English   中英

腳本中的bash curl用戶名憑據

[英]bash curl username credentials within script

我將用戶名和密碼傳遞給 curl 命令以接收來自 api 調用的輸出。 不確定出了什么問題,但是 curl 命令可以從命令行運行,但是當我在 bash 腳本中使用相同的 curl 命令時,它沒有正確獲取憑據。 API 調用因授權錯誤而失敗。 有人可以在這里拋出一些指針嗎?

curl --silent -u 'blah-blah:youareawesome$1234' https://example.com/api/check

這是腳本

USERNAME=$1 PASSWORD=$2 curl --silent -u "${USERNAME}:${PASSWORD}" https://example.com/api/check

{"timestamp":1509422967185,"status":401,"error":"Unauthorized","message":"Bad credentials","path":"/api/check"}

試試這個

UNAME=$1
PASSWORD=$2
curl --silent -u "${UNAME}:${PASSWORD}" https://example.com/api/check

Blockquote curl --silent -u 'blah-blah:youareawesome$1234' https://example.com/api/check

這可能是引號上的紅鯡魚,但您的腳本不會接受$符號后的字符串。

當您輸入腳本時,可能需要將您的用戶名和密碼用引號括起來。

謝謝大家的回答!! 無論出於何種原因,在我修改腳本以將用戶名和密碼作為單獨的變量並傳遞給 curl 命令之后

CREDS="${USERNAME}:${PASSWORD}" CURL_CMD="curl --silent -u ${CREDS}" ${CURL_CMD} https://example.com/api/check

您可以像這樣使用,例如:

curl --location --request POST 'http://119.235.1.63/test' \
--header 'Content-Type: application/json' \
--data-raw '{ "CompanyId":"mafei", "Pword":"mafei123", "SmsMessage":"I am '${USER}'", "PhoneNumber": [ "712955386"] }'

在您的代碼中,請使用如下單引號

curl --silent -u "'${USERNAME}:${PASSWORD}'" https://example.com/api/check

暫無
暫無

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

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