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

qxsslcnc  于 2023-04-20  发布在  Linux
关注(0)|答案(1)|浏览(114)

此问题已在此处有答案

Difference between single and double quotes in Bash(7个回答)
2天前关闭。
我在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"}
`

实际上,我传递的client_testcred是4美元。

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= curl“${args[@]}"``
我希望在CURL_RESPONSE中输出一个令牌。

svgewumm

svgewumm1#

您没有正确传递$4
试试这个:

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)

相关问题