You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么会出现unexpected token错误,`echo`附近语法报错如何解决?

报错原因排查与修复方案

syntax error near unexpected token \echo` 是典型的Shell脚本语法错误,由if`分支结构不符合语法规范触发。

核心问题

Shell的if判断有固定语法要求,条件判断语句后必须紧跟then关键字,二者要么同行用;分隔,要么then单独占一行。代码中在if [ $? -ne 0 ]后直接写了echo语句,缺少then关键字,Shell解析到echo时无法匹配预期的语法结构,就会抛出该错误。

正确语法参考

# 写法1:条件与then同行,用;分隔
if [ 条件判断参数 ]; then
    执行逻辑
fi

# 写法2:then单独占一行
if [ 条件判断参数 ]
then
    执行逻辑
fi

修复示例

假设原错误代码如下:

# 错误写法
if [ $? -ne 0 ]
echo "脚本执行失败"
exit 1
fi

调整后可正常运行的写法:

if [ $? -ne 0 ]; then
    echo "脚本执行失败"
    exit 1
fi

其他排查点

  • 确认if分支对应的结束标识fi没有缺失,所有分支关键字必须成对出现
  • 确认[ ]的左右两侧都有空格,[是Shell内置命令,和后续参数必须用空格分隔
  • 排查脚本是否存在Windows格式换行符,可执行dos2unix 你的脚本文件名转换格式后重试

内容的提问来源于stack exchange,提问作者tash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:24:03