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

shell脚本未按预期次数执行循环提前终止问题排查求助

问题根因

从你给出的日志样例里Test {1..4}的输出可以直接定位问题:你脚本里的{1..4}大括号范围扩展没有生效,循环把{1..4}当成了单个字符串执行,所以只会运行1次就退出。
该问题的核心触发原因是你用了sh命令执行脚本:

  • {1..N}是Bash特有的扩展语法,POSIX标准的sh不支持该特性
  • 即使你脚本首行写了#!/bin/bash,如果执行时手动用sh scriptname.sh启动,也会强制用sh解释器运行,忽略脚本指定的shebang

修复方案

  • 改用bash执行脚本:
    bash scriptname.sh
    
  • 或者给脚本添加执行权限后直接运行,会自动调用shebang指定的bash解释器:
    chmod +x scriptname.sh
    ./scriptname.sh
    
  • 如果你需要兼容sh环境,可以把循环改成POSIX兼容的写法,替换原来的for循环即可:
    for i in $(seq 1 4)
    do
      # 原有循环内逻辑保持不变
    done
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:48:02