美文网首页
Linux Shell经典案例一

Linux Shell经典案例一

作者: 大叔David | 来源:发表于2019-06-29 10:07 被阅读0次

    一、使用for循环在/david目录下批量创建10个文件,名称依次为:

    daivd-1.html
    daivd-2.html
    daivd-3.html
    ……
    daivd-10.html

        [root@web01 scripts]# vim david01.sh
        #!/bin/sh
        DIR=/david
        [ ! -d $DIR ] && mkdir -p $DIR
        for n in `seq 10`
        do  
             touch $DIR/david-$n.html
        done
    

    二、用for循环实现将以上文件名中的david全部改成linux,并且扩展名改成大写。

    方法1:

    [root@web01 scripts]# cat david02_1.sh 
    #!/bin/sh
    cd /david
    
    for file in `ls`
    do
      mv $file `echo $file | awk -F [-.] '{print "linux-" $2".HTML"}'`
    done
    

    方法2:

    [root@web01 scripts]# cat david02_2.sh   
    #!/bin/sh
    cd /david
    
    for n in `seq 10`
    do
      mv david-${n}.html linux-${n}.HTML
    done
    

    方法3:

    [root@web01 david]# rename "david" "linux" *
    [root@web01 david]# rename ".html" ".HTML" *
    

    (听网上讲rename有正则表达式可以把以上二步合成一步,但一直没有找到方法,如网友请告知)

    方法4:

    [root@web01 david]# ls | awk -F [-.] '{print "mv " $0,"linux-"$2".HTML"}'|bash
    

    三、批量创建10个系统账号david01-david10并设置密码(密码不能相同为随机8位字符串)。

    知识点(参考以下链接):
    产生随机数的方法
    数字加0的思路

    [root@web01 scripts]# cat david03.sh 
    #!/bin/sh
    . /etc/init.d/functions
    [ $UID -ne 0 ]&&{
      echo "请必须使用root用户操作。"
      exit 1
    }
    DIR=/david
    [ ! -d $DIR ] && mkdir -p $DIR
    for n in `seq -w 10`
    do
       Pass="`echo $RANDOM|md5sum|cut -c 2-9`"
       useradd david$n &>/dev/null  && \
       echo $Pass|passwd --stdin david$n  &>/dev/null
       if [ $? -eq 0 ];then
           action "useradd david$n"  /bin/true
       else
           action "useradd david$n"  /bin/false
       fi
       echo -e "david$n\t$Pass" >> $DIR/user.txt
    done
    

    四:使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为:coaolvajcq_oldboy.html

    [root@web01 scripts]# cat david04.sh 
    #!/bin/sh
    DIR=/server/scripts/oldboy/
    [ ! -f $DIR ]&& `mkdir -p $DIR`
    cd /server/scripts/oldboy/
    for n in `seq 10`
    do
      touch `echo $RANDOM|md5sum|cut -c 1-10`_oldboy.html
    done
    

    五、将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。

    方法1:

    [root@web01 scripts]# cat david05_1.sh     
    #!/bin/sh
    cd /server/scripts/oldboy/
    for n in `ls`
    do
      mv $n `echo $n | sed 's#boy.html#gilr.HTML#g'`
    done
    

    方法2:

    [root@web01 scripts]# cat david05_2.sh        
    #!/bin/sh
    cd /server/scripts/oldboy/
    
    for n in `ls`
    do
      rename "boy.html" "girl.HTML" $n
    done
    

    相关文章

      网友评论

          本文标题:Linux Shell经典案例一

          本文链接:https://www.haomeiwen.com/subject/dnvucctx.html