【发布时间】:2021-12-23 22:28:59
【问题描述】:
我正在尝试使用运行 Big Sur 和 zsh 作为我的 shell 的 Mac 上的终端对公共 API 执行非常简单的 curl 请求。这是命令:
https://api.nasa.gov/neo/rest/v1/feed?start_date=2021-11-11&end_date=2021-11-11&api_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
我不断收到此错误消息:
zsh: parse error near `&'
我不明白这是什么意思,因为命令中没有引号。我尝试将密钥括在引号中以查看是否可以解决它,相同的消息,然后尝试包装日期和密钥,同样的事情,切换参数的顺序,相同。
不胜感激。
【问题讨论】:
-
ZSH 将尝试解析那些
&、=等。你需要转义它们:curl https://api.nasa.gov/neo/rest/v1/feed\?start_date\=2021-11-11\&end_date\=2021-11-11\&api_key\=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(或使用引号...) -
更好的是,只需(单个)引用整个 URL。无论其内容如何,您都不打算 shell 处理它,所以不要给它机会。这样您就不必通过 URL 挑选并决定哪些字符需要转义,哪些不需要。