Mac Big Sur系统zsh终端执行curl请求时报parse error near `&'错误如何解决
报错原因
zsh 中&是系统预留的控制字符,功能为将前方命令放到后台异步执行。直接输入带&参数拼接符的未包裹URL时,zsh不会将整段内容识别为curl的请求参数,会在遇到第一个&时尝试拆分命令,因此触发parse error near '&'语法解析错误。
你之前尝试的单独为参数加引号、调换参数顺序的操作没有解决&暴露在shell解析环境的核心问题,因此无法消除报错。
可行解决方案
- 方案1(最推荐,兼容性最高):用单引号将完整URL整体包裹,单引号内的所有特殊字符都不会被zsh解析
命令示例:curl 'https://api.nasa.gov/neo/rest/v1/feed?start_date=2021-11-11&end_date=2021-11-11&api_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' - 方案2:对URL中所有的
&符号单独转义,在每个&前添加反斜杠\
命令示例:curl https://api.nasa.gov/neo/rest/v1/feed?start_date=2021-11-11\&end_date=2021-11-11\&api_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - 方案3:用双引号将完整URL整体包裹,仅适用于URL中没有
$、反引号等需要zsh解析的特殊字符的场景,你的NASA请求URL可正常使用
命令示例:curl "https://api.nasa.gov/neo/rest/v1/feed?start_date=2021-11-11&end_date=2021-11-11&api_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
内容的提问来源于stack exchange,提问作者PruitIgoe
相关产品推荐
相关产品推荐

