首页 > 解决方案 > 无法在 curl 命令中使用变量

问题描述

我试图在我的 ksh 程序的 curl 命令中使用两个变量,但它不起作用。

例子:

  1. 原始网址

    curl -s --header "Content-Type:application/json" --header "Accept:application/json" -X POST --data-binary '{"username":"foo","password":"foo_pwd"}' URL site
    
  2. 在我的节目中

    user=foo
    pwd=foo_pwd
    curl -s --header "Content-Type:application/json" --header "Accept:application/json" -X POST --data-binary '{"username":"'"$user"'","password":"'"$pwd"'"}' URL site
    

我也试过用反斜杠转义双引号,但它也不起作用。

标签: bashshellcurlksh

解决方案


首先检查你的脚本

user=foo
pwd=foo_pwd
echo '{"username":"'"$user"'","password":"'"$pwd"'"}'

然后运行

user=foo
pwd=foo_pwd
curl -s --header "Content-Type:application/json" --header "Accept:application/json" -X POST https://example.com --data-binary '{"username":"'"$user"'","password":"'"$pwd"'"}'

推荐阅读