首页 > 解决方案 > curl 400 错误请求(在 bash 脚本中)

问题描述

我试图在 bash 中执行以下脚本

#!/bin/bash
source chaves.sh
HEAD='"X-Cachet-Token:'$CACHET_KEY'"'
SEARCH="'{"'"status"'":1,"'"id"'":"'"7"'","'"enabled"'":true}'"
echo $SEARCH

if curl -s --head  --request GET http://google.com.br | grep "200 OK" > /dev/null; then 
   echo 'rodou'
   curl -X PUT -H '"Content-Type:application/json;"' -H '"'X-Cachet-Token:$CACHET_KEY'"' -d $SEARCH $CACHET_URL/7

else
  echo 'não deu'
  curl -X PUT -H '"Content-Type: application/json;"' -H $x -d '{"status":1,"id":"7","enabled":true}' $CACHET_URL/7
fi

但不断收到来自服务器的 400 错误请求。

当我尝试直接在终端中运行同一行(脚本中的回显,Ctrl+c 和 Ctrl+v)时,命令运行没有问题。

源文件有路径的指示和我需要使用的变量标记,但据我测试,读取正常。

我需要在服务器中输入的命令是:

curl -X PUT -H“内容类型:应用程序/json;” -H "X-Cachet-Token:4A7ixgkU4hcCWFReQ15G" -d '{"status":1,"id":"7","enabled":true}' http://XXX.XXX.XXX.XXX/api/ v1/组件/7

我抓住的出口是回声命令,给我我想要的确切出口,但不要在脚本内部运行,只能在外部运行。

我对卷曲有点陌生,任何帮助都可以理解。

抱歉,英语不好,请提前 tks。

标签: bashcurlhttp-status-code-400bad-request

解决方案


推荐阅读