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

如何编写支持增量批次创建文件的Shell脚本 重运行从最后编号延续

批次自动续号文件创建Shell脚本实现

功能说明

  • 支持自定义文件名前缀、每批次生成的文件数量
  • 首次运行从编号1开始创建文件,后续运行自动承接上一次最后一个文件的编号继续生成,无需手动调整参数
  • 运行中断后重启也能正常接续上次的编号生成

完整可运行脚本

#!/bin/bash

# 可自定义配置项
FILE_PREFIX="XXXX"       # 生成文件的统一前缀
BATCH_SIZE=10            # 每次运行脚本生成的文件数量
COUNT_FILE=".last_file_id" # 记录上次最后编号的隐藏存储文件,无需手动修改

# 读取上次运行的最后编号,无历史记录则从1开始
if [ -f "$COUNT_FILE" ]; then
    LAST_ID=$(cat "$COUNT_FILE")
    START_ID=$((LAST_ID + 1))
else
    START_ID=1
fi
END_ID=$((START_ID + BATCH_SIZE - 1))

# 批量生成目标文件
for ((current_id=START_ID; current_id<=END_ID; current_id++))
do
    touch "${FILE_PREFIX}${current_id}"
    echo "已生成文件:${FILE_PREFIX}${current_id}"
done

# 写入本次的最后编号,供下次运行使用
echo "$END_ID" > "$COUNT_FILE"
echo "本次批次执行完成,共生成 ${BATCH_SIZE} 个文件,编号范围:${START_ID} ~ ${END_ID}"

使用说明

  • 按需修改脚本开头的FILE_PREFIX和BATCH_SIZE两个参数即可,比如要每批生成20个前缀为report的文件,就把FILE_PREFIX设为report,BATCH_SIZE设为20
  • 脚本运行后会在当前目录生成隐藏的.last_file_id文件用于记录编号,不要删除或修改该文件,否则下次运行会重新从1开始编号
  • 如果需要重置编号从1开始,直接删除.last_file_id文件再运行脚本即可

原代码问题说明

你原来编写的代码主要存在三个问题:

  • 没有持久化存储上次的最后编号,每次运行都会从1开始生成,无法实现续号需求
  • 循环内的((NUMBER+5))逻辑仅做了数值计算没有赋值给变量,不会生效,且break逻辑会提前终止循环,无法生成预期数量的文件
  • 编号逻辑硬编码,调整批次数量需要修改多处代码,可维护性差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:45:04