shell练习题

  1. 使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件。把上面创建的文件oldboy字符串改为oldgirl

 dir=/oldboy
 [ -d "$dir" ] || mkdir -p $dir
 for  n  in  {1..10}
 do
     name=`tr -cd 'a-zA-Z'  </dev/urandom  |head -c10`
     touch  $dir/${name}_oldboy.html
 done
 cd $dir
 for i in `ls` 
 do
    a=`echo $i|cut -c 1-10`
    mv  ${a}_oldboy.html ${a}_oldgirl.HTML
 done
 产生随机数
 echo $RANDOM|md5sum|cut -c'1-8';echo 

.统计下面这句话中字母数不大于6的单词(至少两种方式)

I am oldboy teacher welcome to oldboy training class.
 [root@shell ~]# echo I am oldboy teacher welcome to oldboy training class|awk '{for(i=1;i<=NF;i++){if (length($i)<=6) {print $i}}}' 
 I
 am
 oldboy
 to
 oldboy
 class
  1. 计算从1加到100之和

 [root@shell scripts]# cat sum.sh 
 a=1
 while [ $a -le 100 ]
 do
      sum=$[ $sum+$a ]
      let a++
 done
 echo $sum

脚本批量创建10个用户,密码统一为123,需要对用户输入是否为数字和输入的名字是否为空做判断

 [root@shell scripts]#cat user1.sh
 #!/bin/bash
 passwd=123
 while true
 do
     read -p "请输入用户名前缀: " prefix
     if [ -z $prefix ]; then
         echo "用户名前缀不能为空!"
     else
         break
     fi
 done
 while true
 do
     read -p "请输入需要创建用户数量: " num
     if [[ ! $num =~ ^[1-9][0-9]?$ ]]; then
         echo "请输入不为零的整数!"
     else
         break
     fi
 done
 ​
 for i in `seq $num`
 do
     user=$prefix$i
     id $user &>/dev/null
     if [ $? -eq 0 ]; then
         echo "用户oldboy${i}已经存在!"
     else
         useradd $user && echo $passwd | passwd --stdin $user &>/dev/null
         if [ $? -eq 0 ]; then
             echo "密码创建成功!"
         else
             echo "密码创建失败!"
         fi
     fi
 done
 创建随机密码:
 for n in `seq -w 10`
 do
 useradd user$n;echo "user$n `user$n|md5sum|cut-c1-8`"|passwd --stdin user$n
 done

 

 

 



 



 



posted @ 2021-03-01 21:51  上善若水~小辉  阅读(109)  评论(0编辑  收藏  举报