shell練習題

  1. 使用for循環在/oldboy目錄下經過隨機小寫10個字母加固定字符串oldboy批量建立10個html文件。把上面建立的文件oldboy字符串改成oldgirlhtml

 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的單詞(至少兩種方式)shell

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之和bash

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

腳本批量建立10個用戶,密碼統一爲123,須要對用戶輸入是否爲數字和輸入的名字是否爲空作判斷dom

 [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
相關文章
相關標籤/搜索