Bash 脚本中的反引号在命令执行时不解释 curl 参数

问题描述 投票:0回答:0

我在 shell 脚本中执行以下命令:

CURL_RESPONSE=`curl --request POST "$1" --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type="$4"' --data-urlencode 'scope=operator test' --data-urlencode 'client_id=$2' --data-urlencode 'client_secret=$3' -s

但是当我运行脚本时,出现以下错误:

`curl Response is {"code":"400","description":"Invalid grant_type. Only client_testcred is accepted"}
`

我实际上以 4 美元的价格通过了 client_testcred。

CURL_RESPONSE=`curl --request POST "$1" --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type="$4"' --data-urlencode 'scope=operator test' --data-urlencode 'client_id=$2' --data-urlencode 'client_secret=$3' -s

即使我尝试使用 args 下面的命令,但不起作用:

 args=(--request POST "$1" --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=client_credentials' --data-urlencode 'scope=operator supervisor' --data-urlencode 'client_id=$2' --data-urlencode 'client_secret=$3' -s) CURL_RESPONSE=
卷曲“${args[@]}”``

我期待在 CURL_RESPONSE 中输出一个标记。

linux bash shell command backticks
© www.soinside.com 2019 - 2024. All rights reserved.