之前根据下面的需求写了一个脚本,自我感觉太垃圾了,经过修改,下面的版本更简洁,更科学,随着学习的深入,我也会继续对之前的代码进行更合理更简洁的改进!!
1.在/edu目录中批量创建10个文件,文件名由10个随机小写字母+固定字符组成.固定字符 为_html, 如:ahdkhzhdld_html。
2.将上述目录中的文件重命名,将 html 换成 HTML。
3.仅保留上述目录中最新的文件,其它文件都删除掉。
#!/bin/bash#定义一个随机生成10个字母的函数function genLetters(){letters=qwertyuiopasdfghjklzxcvbnmname=for i in {1..10}donum=$[ $RANDOM%26 ]one_letters=${letters:$num:1} #变量切片name=$name$one_lettersdoneecho $name}echo \"正在创建文件...\"sleep 2#开始创建文件for j in {1..10}dotouch /edu/$(genLetters)_htmldoneecho \"文件创建完毕!结果如下:\"ls /edu/ #直接展示第一步结果sleep 5echo \"开始重命名文件....\"sleep 1#开始重命名for i in `ls /edu/*_html`domv $i ${i::-4}HTMLdoneecho \"重命名完毕!结果如下:\"ls /edu/ #直接展示第二步结果sleep 5echo \"正在删除旧文件...\"sleep 1#开始删除旧文件for i in `ls /edu/*`dofor j in `ls /edu/*`dotest $j -ot $i #检查是否比最新的文件要旧result=`echo $?` #如果返回0,则比最新的文件要旧[ $result -eq 0 ]&& rm -rf $j && echo \"已删除$j\"donedoneecho \"旧文件删除完毕!结果如下:\"ls /edu/ #直接展示第三步结果