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

相关推荐
LDR0061 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术1 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园1 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob1 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享1 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.1 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..1 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽1 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下1 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
飞天狗1111 天前
零基础JavaWeb入门——第五课第二小节:九大内置对象 · 第2个:response(响应对象)
java·开发语言