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

如何修复zsh运行脚本时出现parse error near do的报错

zsh脚本parse error near 'do'报错解决方案

错误原因

你的代码违反了zsh的for循环语法规则:C风格for循环的声明头和do关键字之间不允许插入其他独立语句,你把export K='SOME NUMBER'放在了for声明和do中间,直接触发了解析错误。

修复方案

根据K变量的使用场景选择对应写法即可:

场景1:K为固定值,不需要循环内修改

把K的定义放到for循环外面即可,标准写法如下:

#!/usr/bin/env zsh

# 全局定义固定值K
export K='SOME NUMBER'

for ((i = 0; i < 41; i++)); do
  ./A-PROGRAM *SOME FLAGS* $i *MORE FLAGS* $K 1
done

场景2:K需要每次循环动态更新

把K的定义放到do和done包裹的循环体内即可:

#!/usr/bin/env zsh

for ((i = 0; i < 41; i++)); do
  export K='SOME NUMBER'
  ./A-PROGRAM *SOME FLAGS* $i *MORE FLAGS* $K 1
done

额外优化建议

  • 如果你写代码习惯换行排版,也可以把do单独放一行,语法同样合法:
    for ((i = 0; i < 41; i++))
    do
      # 循环体
    done
    
  • 如果K的取值包含空格、特殊符号,调用时建议写成"$K"避免变量被意外拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:24:00