Linux Shell经典案例一

2019-06-29  本文已影响0人  大叔David

一、使用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
上一篇下一篇

猜你喜欢

热点阅读