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

Bash脚本执行报错:syntax error near unexpected token `)' 求助

排查Bash case语句的语法错误

嘿,作为Bash新手碰到这种语法问题很正常,我帮你拆解一下这个错误的原因:

核心错误点

  • 每个case分支必须用;;终止:Bash的case语法要求每个匹配到的分支代码块末尾必须加上;;,用来标记该分支处理结束,否则shell无法识别分支边界。你的darwin*)和linux*)分支都漏掉了这个关键标记。
  • 缺少case语句的闭合标记esac:case语句的结构是case ... in ... esac,esac是case的反向拼写,用来闭合整个语句块。你的脚本完全没写这个,这就是触发syntax error near unexpected token ')'的主要原因。
  • 命令分隔不规范:在linux*)分支里,make clean和make -j4需要和前面的cmake命令明确分隔开(要么换行缩进,要么用分号分隔),否则shell会把它们误判为cmake的参数。

修正后的完整脚本

case "$OSTYPE" in
    darwin*)
        cmake . -DPLATFORMTARGET=x64 -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 -DCMAKE_PREFIX_PATH="/Users/$(whoami)/Qt/5.10.1/clang_64/lib/cmake"
        ;;
    linux*)
        cmake . -DPLATFORMTARGET=x64 -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_PREFIX_PATH="/Users/$(whoami)/Qt/5.10.1/gcc_64/lib/cmake"
        make clean
        make -j4
        ;;
esac

额外小提示

为了可读性,建议把每个分支的命令缩进一下,这样后续维护脚本的时候更容易区分不同平台的逻辑~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:00:49