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

    作者:波波说运维更新于: 2019-10-31 10:35:37

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

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

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

      脚本:

      #!/bin/bash

      #############################################################

      # File Name: add_user.sh

      #############################################################

      ​

      Passwd_File=/tmp/`uuidgen`.txt

      >$Passwd_File

      chmod 400 $Passwd_File

      ​

      for i in hwb{01..10}

      do

      userdel -r "$i" &>/dev/null

      id $i &>/dev/null

      if [ $? -ne 0 ]

      then

      useradd $i

      PassWd=`uuidgen`

      echo $PassWd |passwd --stdin $i &>/dev/null

      echo "用户名:$i 密码:$PassWd" >>$Passwd_File

      echo -e "\\033[32m $i 用户创建成功!\\033[0m"

      else

      echo "$i 用户已存在"

      fi

      if [ "$i" == "hwb10" ]

      then

      echo "用户密码请查看文件 $Passwd_File"

      fi

      done

      

    值得收藏,分享两个实用的shell脚本实例_shell脚本视频_shell脚本学习视频_shell脚本_课课家

     

      结果:

      

     

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

      方法一:

      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

      方法二:

      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

      方法三:

      echo user{1..20}|xargs -n1|sed -r 's#(.*)#useradd \\1 \\&\\& pass=`echo $RANDOM |md5sum |cut

      

     

      2. 筛选符合长度的单词

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

      脚本:

      #!/bin/bash

      #############################################################

      # File Name: changdu.sh

      #############################################################

      word='I am hwb Welcome to my toutiao https://mp.toutiao.com/profile_v3/index'

      ​

      for i in $Word

      do

      #[ ${#i} -le 6 ] && echo $i #子串方法

      a=`echo $i |wc -L`

      if [ $a -le 6 ]

      then

      echo $i

      fi

      done

      

    结果:

     

      

     

      今天内容就是这些了,我们下期见。

课课家教育

未登录

1