bash在脚本中卷曲用户名凭据

时间:2017-10-31 03:55:47

标签: bash curl

我将用户名和密码传递给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"}

4 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:1)

  

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

这可能是引号上的红色鲱鱼,但您的脚本在$符号后不接受字符串。

可能需要打包您的用户名&密码在引号中,因为您为脚本提供输入。

答案 2 :(得分:1)

您可以这样使用, 例如:

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

答案 3 :(得分:0)

感谢您的所有答案!!无论出于何种原因,我修改脚本后将用户名和密码作为单独的变量并传递给curl命令工作

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