Bash 将curl http响应代码分配给变量

Bash 将curl http响应代码分配给变量,bash,shell,curl,Bash,Shell,Curl,在我正在创建的bash脚本中有以下调用 response= curl -X POST $URL -u "$USER:$PASSWORD" --data-urlencode "key=$key" --data "label=pub_key" -o /dev/null --silent --write-out "%{http_code}" 我可以看到200被写入控制台,但是$response总是以null结尾 我也试过以下方法,但效果并不好 response= $(curl -X POST $UR

在我正在创建的bash脚本中有以下调用

response= curl -X POST $URL -u "$USER:$PASSWORD" --data-urlencode "key=$key" --data "label=pub_key" -o /dev/null --silent --write-out "%{http_code}"
我可以看到200被写入控制台,但是$response总是以null结尾

我也试过以下方法,但效果并不好

response= $(curl -X POST $URL -u "$USER:$PASSWORD" --data-urlencode "key=$key" --data "label=pub_key" -o /dev/null --silent --write-out "%{http_code}")
欢迎为bash noob提供任何帮助。

空间——最后的前沿:

response=$(curl -X ...)
注意:
=
周围没有空格。shell在一些地方对空白敏感,变量赋值就是其中之一


使用空格,如在
var=command args
中一样,您可以在一次性赋值中将
var
设置为空,然后当场运行
command

!似乎我有一些关于变量赋值语法的阅读要做。谢谢:)更准确的说法是shell对空格非常敏感。与
response=foo
相比,这并不是说
response=foo
是某种语法错误;对于两个完全不同的操作,每个都是完全有效的语法。(第一个调用命令
foo
,变量
response
在其环境中设置为空字符串;第二个是变量赋值。)