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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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 在zsh shell脚本中将json值提取到变量_Bash_Shell_Jq - Fatal编程技术网

Bash 在zsh shell脚本中将json值提取到变量

Bash 在zsh shell脚本中将json值提取到变量,bash,shell,jq,Bash,Shell,Jq,我正在尝试从远程api获取货币的值,以便稍后通过一些计算来运行它。但是,我无法将此值指定给变量 #!/usr/bin/env zsh result = $(curl -s -X GET "https://openexchangerates.org/api/latest.json?app_id=SOME_KEY" | jq '.rates.GBP') echo $result 这导致: > ./script.sh:5: command not found: result 在类似伯恩的

我正在尝试从远程api获取货币的值,以便稍后通过一些计算来运行它。但是,我无法将此值指定给变量

#!/usr/bin/env zsh

result = $(curl -s -X GET "https://openexchangerates.org/api/latest.json?app_id=SOME_KEY" | jq '.rates.GBP')

echo $result
这导致:

> ./script.sh:5: command not found: result

在类似伯恩的shell(例如,sh、bash、zsh)中,等号周围不能有空格。发生的情况是,当zsh看到这条线时:

result = $(curl -s -X GET "https://openexchangerates.org/api/latest.json?app_id=SOME_KEY" | jq '.rates.GBP')
它认为
result
是一个命令的名称,等号和它后面的是该命令的参数。要避免这种情况,请执行以下操作:

result=$(curl -s -X GET "https://openexchangerates.org/api/latest.json?app_id=SOME_KEY" | jq '.rates.GBP')

ETA:我注意到错误的行号是5,而不是我预期的3。我不知道这是否是因为CR/LF行尾问题,或者你给我们看的脚本中是否缺少了什么,或者诸如此类。

在类似伯恩的shell(例如,sh、bash、zsh)中,等号周围不能有空格。发生的情况是,当zsh看到这条线时:

result = $(curl -s -X GET "https://openexchangerates.org/api/latest.json?app_id=SOME_KEY" | jq '.rates.GBP')
它认为
result
是一个命令的名称,等号和它后面的是该命令的参数。要避免这种情况,请执行以下操作:

result=$(curl -s -X GET "https://openexchangerates.org/api/latest.json?app_id=SOME_KEY" | jq '.rates.GBP')

ETA:我注意到错误的行号是5,而不是我预期的3。我不知道这是否是因为CR/LF行结束问题,或者你给我们看的脚本中是否缺少什么东西,或者诸如此类。

FYI
bash
zsh
是两个不同的shell。您的shebang表示您正在使用后者,而不是前者。仅供参考
bash
zsh
是两个不同的shell。你的shebang表明你在使用后者,而不是前者。哇,我现在觉得很傻,不敢相信我因为空间浪费了一个小时。。非常感谢。(至于行数,实际上只是一个不正确的复制粘贴)哇,我现在觉得很傻,不敢相信我因为空格浪费了一个小时。。非常感谢。(至于行数,实际上只是不正确的复制粘贴)