【BASH 常用脚本系列 2 -- shell 动态按数值顺序增加生成文件名】

请阅读【嵌入式开发学习必备专栏 】


文章目录

    • [shell 动态按数值顺序增加生成文件名](#shell 动态按数值顺序增加生成文件名)

shell 动态按数值顺序增加生成文件名

要实现这个需求, 需要编写一个 shell 脚本 a.sh,这个脚本将执行以下操作:

  1. 在第一次运行时,会创建一个名为 tmp.txt 的文件,并写入字符 1
  2. 脚本会从 tmp.txt 文件中读取这个字符,并将其追加到一个基本文件名 filename 后以创建新的文件名。
  3. 完成文件命名后,脚本会将字符 2 写入 tmp.txt 文件,以便下次运行脚本时使用。
    下面是脚本 a.sh 的内容:
sh 复制代码
#!/bin/bash
# 定义文件名和临时文件的路径
base_filename="filename"
tmp_file="tmp.txt"
# 检查tmp.txt文件是否存在并且不为空
if [ ! -s "$tmp_file" ]; then
    # 如果不存在或为空,则echo 1到tmp.txt文件
    echo 1 > "$tmp_file"
fi
# 从tmp.txt文件中读取字符
number=$(cat "$tmp_file")
# 追加读取的字符到文件名
new_filename="${base_filename}${number}"
# 使用touch命令创建新的文件(这里仅创建空文件, 可以根据需要修改)
touch "$new_filename"
# 打印新文件名
echo "Created new file: $new_filename"
# 更新tmp.txt文件,以供下次使用
next_number=$((number+1))
echo "$next_number" > "$tmp_file"

将上述脚本保存到 a.sh 文件中,并给它执行权限:

sh 复制代码
chmod +x a.sh

在运行脚本之前,确保 当前的工作目录没有其他重要的名为 tmp.txtfilename* 的文件,因为这个脚本将会覆盖 tmp.txt 并创建或覆盖形如 filename1 的文件。

运行脚本:

sh 复制代码
./a.sh

脚本将执行上述所说的操作,创建名为 filename1 的文件,并在 tmp.txt 中写入 2。下一次执行脚本时,将创建名为 filename2 的文件,并在 tmp.txt 中写入 3,以此类推。

相关推荐
Aurorar0rua4 小时前
CS50 x 2024 Notes C -14
c语言·开发语言·学习方法
小短腿的代码世界5 小时前
从.qrc到rcc编译器:Qt资源系统的隐秘运作机制与大型项目性能突围
开发语言·qt
2401_833269305 小时前
Java网络编程入门
java·开发语言
青瓦梦滋6 小时前
C++的IO流与STL的空间配置器
开发语言·c++
五月君_6 小时前
Bun v1.3.14 发布,Rust 版即将进 Claude Code 内测,下一版可能就告别 Zig
开发语言·后端·rust
鱼很腾apoc7 小时前
【学习篇】第20期 超详解 C++ 多态:从语法规则到底层原理
java·c语言·开发语言·c++·学习·算法·青少年编程
lifewange7 小时前
Redis 集合(Set)运算完全指南
数据库·chrome·redis
不吃土豆的马铃薯8 小时前
4.SGI STL 二级空间配置器 allocate 与_S_refill 源码解析
c语言·开发语言·c++·dreamweaver·内存池
码界筑梦坊8 小时前
120-基于Python的食品营养特征数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts·fastapi
lsx2024069 小时前
《Foundation 模态框》
开发语言