【Linux】shell编程案例

时间:2021-10-07 15:59:12

一、随机生成字符文件名

1.需求描述:

使用for循环在/usr/test目录下创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串test,案例名称如下:

以下为示例:

【Linux】shell编程案例


2.代码部分:

#!bin/bash
#Autor:OLIVER
#Date :2018-12-11
#Desc :生成随机文件名
#Version 1.0

[ -d /usr/prac ] || mkdir /usr/prac
cd /usr/prac
echo $(pwd) && \

for i in {1..10}
 do
   filename=$(uuidgen|tr '0-9-' 'a-z'|cut -c 1-10 )
   touch ${filename}_test.html
 done

代码高亮截图:

【Linux】shell编程案例

3.代码说明

[ -d /usr/prac ] || mkdir /usr/prac 判断文件夹/usr/prac是否存在,不存在则新建

echo $(pwd) && \   控制台输出当前文件目录

0-9- 该表达式会将短线过滤


二、批量修改文件名

1.需求描述

将上述文件名中的test后缀批量修改为exp,并且将文件名后缀修改为.HTML

以下为示例:

【Linux】shell编程案例

2.代码部分

#!bin/bash
#Autor:OLIVER
#Date :2018-12-11
#Desc :批量修改文件名
#Version 1.0

DIR=/usr/prac

cd $DIR && \

for i in $(ls *.html)
   do
     rname=$(echo $i|cut -c -10)
     mv $i ${rname}_exp.HTML
   done

代码高亮截图

【Linux】shell编程案例

3.代码说明

for i in $(ls *.html) 表示循环文件夹下所有的html文件,i指文件名

${rname} 表示获取变量值,与$rname等效


三、筛选符合长度的单词

1.需求描述

利用bash for循环打印下面这句话中字母数大于4的单词

We waited for john in the lobby of the airport

2.代码部分

#!bin/bash
#Autor:OLIVER
#Date :2018-12-11
#Desc :筛选
#Version 1.0

for i in We waited for john in the lobby of the airport
  do
    if [ "${#i}" -le 4 ];then
     echo $i
    fi
  done

代码高亮截图

【Linux】shell编程案例

3.代码说明

${#i}  表示取字符串i的长度值