分享两个实用的shell脚本实例,值得收藏,什么是shell


今天主要分享两个shell脚本实例,内容不重要,重点是看如何去实现。

1. 批量创建特殊要求用户

需求:批量创建10个系统帐号hwb01-hwb10并设置密码(密码为随机数,要求字符和数字等混合)。

脚本:

  1. #!/bin/bash 
  2. ############################################################# 
  3. # File Name: add_user.sh 
  4. ############################################################# 
  5. ​ 
  6. Passwd_File=/tmp/`uuidgen`.txt 
  7. >$Passwd_File 
  8. chmod 400 $Passwd_File 
  9. ​ 
  10. for i in hwb{01..10} 
  11.  do 
  12.  userdel -r "$i" &>/dev/null 
  13.  id $i &>/dev/null 
  14.  if [ $? -ne 0 ] 
  15.  then 
  16.  useradd $i 
  17.  PassWd=`uuidgen` 
  18.  echo $PassWd |passwd --stdin $i &>/dev/null 
  19.  echo "用户名:$i 密码:$PassWd" >>$Passwd_File 
  20.  echo -e "\033[32m $i 用户创建成功!\033[0m" 
  21.  else  
  22.  echo "$i 用户已存在" 
  23.  fi 
  24.  if [ "$i" == "hwb10" ]  
  25.  then 
  26.  echo "用户密码请查看文件 $Passwd_File" 
  27.  fi 
  28. done 

分享两个实用的shell脚本实例,值得收藏

结果:

分享两个实用的shell脚本实例,值得收藏

ps:批量创建用户并设置随机密码(不使用shell循环)

方法一:

  1. echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \1 \&\& echo \1 >>/tmp/passwd.txt \&\& echo $RANDOM |md5sum |cut -c 1-5>>/tmp/passwd.txt \&\& echo `tail -1 /tmp/passwd.txt`|passwd --stdin \1#g'|bash 

方法二:

  1. echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \1 \&\& pass=`echo $RANDOM |md5sum |cut -c 1-5` \&\& echo $pass |passwd --stdin \1 \&\& echo \1 $pass>>/tmp/user_passwd.txt#g'|bash 

方法三:

  1. echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \1 \&\& pass=`echo $RANDOM |md5sum |cut -c 1-5` \&\& echo \1:$pass>>/tmp/user_passwd.txt \&\& chpasswd</tmp/user_passwd.txt#g'|bash 

分享两个实用的shell脚本实例,值得收藏

2. 筛选符合长度的单词

利用bash for循环打印下面这句话中字母数不大于6的单词(某企业面试真题)。

脚本:

  1. #!/bin/bash 
  2. ############################################################# 
  3. # File Name: changdu.sh 
  4. ############################################################# 
  5. Word='I am hwb Welcome to my toutiao https://mp.toutiao.com/profile_v3/index' 
  6. ​ 
  7. for i in $Word 
  8.  do  
  9.  #[ ${#i} -le 6 ] && echo $i #子串方法 
  10.  a=`echo $i |wc -L` 
  11.  if [ $a -le 6 ] 
  12.  then  
  13.  echo $i 
  14.  fi 
  15. done 

分享两个实用的shell脚本实例,值得收藏

结果:

分享两个实用的shell脚本实例,值得收藏

相关内容