两个实用的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 -c 1-5` \&\& echo \1:$pass>>/tmp/user_passwd.txt \&\& chpasswd</tmp/user_passwd.txt#g'|bash
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脚本的实例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。