今天主要分享两个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
结果:
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
结果:
今天内容就是这些了,我们下期见。