Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用shell返回500错误的Rest调用_Bash_Shell_Rest_Curl - Fatal编程技术网

Bash 使用shell返回500错误的Rest调用

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

使用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://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"