在Curl请求中使用变量

tquggr8v  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(201)

我真的是新手,可以使用一些初学者的帮助!
我试图通过使用变量作为标记来缩短Curl命令,但无论我如何尝试使用引号或双引号来格式化它,它都无法工作。
以下CURL命令工作正常:

curl -X GET 'https://myurl.com/test' \
  -H 'auth-version: 2' \
  -H 'auth: 2_oXDMeAWeR3tiPLWjjPJHV_1OzeSwwW_0dyO0iLE67'

但是当我尝试像这样使用一个变量作为auth值时,它不起作用:

token = "2_oXDMeAWeR3tiPLWjjPJHV_1OzeSwwW_0dyO0iLE67"
curl -X GET 'https://myurl.com/test' \
  -H 'auth-version: 2' \
  -H 'auth: "$token"'

我也试着用JSON做类似的事情,但也失败了:

token = "2_oXDMeAWeR3tiPLWjjPJHV_1OzeSwwW_0dyO0iLE67"
curl -X GET 'https://myurl.com/test' '{"auth-version": 2, "auth": "$token"}'

我如何才能让这两个都正常工作?

s4n0splo

s4n0splo1#

具体是什么错误?我很确定token = ...应该会失败,并出现类似bash: token: command not found的错误,因为不允许在名称、=和值之间有空格。应该是token=...。否则,根据您运行这些curl命令的方式,您可能需要首先导出令牌,以便在后续的bash命令中访问它。即:

export token=2_oXDMeAWeR3tiPLWjjPJHV_1OzeSwwW_0dyO0iLE67
curl -X GET 'https://myurl.com/test' \
  -H 'auth-version: 2' \
  -H 'auth: "$token"'

您可以通过执行以下操作来检查:

echo $token
 // if it prints nothing you need to use export

相关问题