【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,以此类推。

相关推荐
Interview Aid11213 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
CoderIsArt20 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
AI情绪识别开源1 天前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
「QT(C++)开发工程师」1 天前
C++ auto 用法详解
开发语言·c++
OPEN-F1 天前
C++STL教程:容器适配器与实用工具
开发语言·c++
yaoxin5211231 天前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F1 天前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。1 天前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN1 天前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生