Bash 使用shell返回500错误的Rest调用
使用shell返回500错误的Rest调用,但当我打印要运行的命令时,当我尝试在bash中运行时,它会完美地执行Bash 使用shell返回500错误的Rest调用,bash,shell,rest,curl,Bash,Shell,Rest,Curl,使用shell返回500错误的Rest调用,但当我打印要运行的命令时,当我尝试在bash中运行时,它会完美地执行 TEST="curl -X PUT $urlvalue -X PUT -i -H "$headervalue1" -H "$headervalue2" -c cookies.txt -d '${datavalue//\'/\'}'" echo $TEST RESPONSE=`$TEST` echo $RESPONSE 测试输出如下所示 curl -X PUT http://abcx
TEST="curl -X PUT $urlvalue -X PUT -i -H "$headervalue1" -H "$headervalue2" -c cookies.txt -d '${datavalue//\'/\'}'"
echo $TEST
RESPONSE=`$TEST`
echo $RESPONSE
测试输出如下所示
curl -X PUT http://abcxyz/metadata -X PUT -i -H "Accept:application/json" -H "Content-Type:application/json" -c cookies.txt -d '{"fileName":"ABC_GB.zip"}'
如果您有报价问题,请尝试更好的方法(您有2次
-X
,这是多余的):
或具有以下功能:
put_stuff() {
curl -i -X PUT "$1" -H "$2" -H "$3" -c cookies.txt -d "${datavalue//\'/\'}"
}
用法:
put_stuff "$urlvalue" "$headervalue1" "$headervalue2"
说明:
在shell中,不能嵌套双引号,存在冲突:
“双引号”包含空格/元字符的每个文本和每个扩展:“$var”
,“$(命令“$var”)”
,“${array[@]}”
,“a&b”
。对代码或文字$使用'single quotes'
,ssh主机'echo“$HOSTNAME”
。见
为什么有2次-X PUT
?尝试添加-v
,然后根据您的问题编辑您的帖子,我现在只在url前面使用了PUT。但它仍然不起作用。但是,当将测试输出放入bashshell时,它的工作方式是curl-xput-i-H“Accept:application/json”-H“Content Type:application/json”-c cookies.txt-d'{“fileName”:“ABC_GB.zip”}”
put_stuff "$urlvalue" "$headervalue1" "$headervalue2"