您的位置:首页 > 运维架构 > Linux

linux:一道作业题(改进版本)

2020-08-09 18:23 561 查看

之前根据下面的需求写了一个脚本,自我感觉太垃圾了,经过修改,下面的版本更简洁,更科学,随着学习的深入,我也会继续对之前的代码进行更合理更简洁的改进!!

1.在/edu目录中批量创建10个文件,文件名由10个随机小写字母+固定字符组成.固定字符 为_html, 如:ahdkhzhdld_html。
2.将上述目录中的文件重命名,将 html 换成 HTML。
3.仅保留上述目录中最新的文件,其它文件都删除掉。

#!/bin/bash
#定义一个随机生成10个字母的函数
function genLetters(){
letters=qwertyuiopasdfghjklzxcvbnm
name=
for i in {1..10}
do
num=$[ $RANDOM%26 ]
one_letters=${letters:$num:1} #变量切片
name=$name$one_letters
done
echo $name
}

echo "正在创建文件..."
sleep 2

#开始创建文件
for j in {1..10}
do
touch /edu/$(genLetters)_html
done
echo "文件创建完毕!结果如下:"
ls /edu/          #直接展示第一步结果
sleep 5

echo "开始重命名文件...."
sleep 1

#开始重命名
for i in `ls /edu/*_html`
do
mv $i ${i::-4}HTML
done
echo "重命名完毕!结果如下:"
ls  /edu/          #直接展示第二步结果
sleep 5

echo "正在删除旧文件..."
sleep 1

#开始删除旧文件
for i in `ls /edu/*`
do
for j in `ls /edu/*`
do
test $j -ot $i  #检查是否比最新的文件要旧
result=`echo $?`   #如果返回0,则比最新的文件要旧
[ $result -eq 0 ]&& rm -rf $j && echo "已删除$j"
done
done
echo "旧文件删除完毕!结果如下:"
ls /edu/          #直接展示第三步结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: