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

Bash脚本嵌套循环中mkdir命令出现语法错误求助

修复批量创建目录的Bash脚本语法错误

你的脚本存在三个核心语法问题,导致内层循环的mkdir调用报错:

  • 内层for循环缺少do关键字:Bash的for循环必须遵循for 变量 in 列表; do ... done的完整结构,原脚本中for week in {1..52}后直接执行mkdir,没有添加do,导致Shell无法正确解析循环结构。
  • 错误使用HTML转义引号:脚本里的"是HTML的双引号转义字符,Bash会将其当作目录名的一部分,而非引号符号,必须替换为普通双引号"。
  • 多余的\n转义符:Bash脚本中无需手动添加\n来换行,直接换行即可,\n会被当作命令参数的一部分,引发路径解析错误。

修正后的完整脚本

mkdir ./output
for year in {1990..2025}
do
    mkdir ./"$year"
    for week in {1..52}
    do
        mkdir ./"$year"/"$week"
    done
done

额外说明

  • 给变量$year和$week包裹双引号是为了兼容变量值包含特殊字符的场景,即使当前变量是数字,这也是编写健壮Bash脚本的好习惯。
  • 如果不需要./output目录,可以删除第一行的mkdir ./output,原脚本后续创建的年份目录直接位于当前工作目录下,与该目录无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:42:10