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

invokerzhang 2019-10-30

概述

今天主要分享两个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脚本实例,值得收藏

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 -c 1-5` \&\& echo \1:$pass>>/tmp/user_passwd.txt \&\& chpasswd</tmp/user_passwd.txt#g'|bash

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


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

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

结果:

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


觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

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

相关推荐