分享兩個實用的Shell腳本實例,值得收藏
作者:波波說運維
今天主要分享兩個shell腳本實例,內(nèi)容不重要,重點是看如何去實現(xiàn)。下面,我們一起來看。
今天主要分享兩個shell腳本實例,內(nèi)容不重要,重點是看如何去實現(xiàn)。
1. 批量創(chuàng)建特殊要求用戶
需求:批量創(chuàng)建10個系統(tǒng)帳號hwb01-hwb10并設(shè)置密碼(密碼為隨機(jī)數(shù),要求字符和數(shù)字等混合)。
腳本:
- #!/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 用戶創(chuàng)建成功!\033[0m"
- else
- echo "$i 用戶已存在"
- fi
- if [ "$i" == "hwb10" ]
- then
- echo "用戶密碼請查看文件 $Passwd_File"
- fi
- done
結(jié)果:
ps:批量創(chuàng)建用戶并設(shè)置隨機(jī)密碼(不使用shell循環(huán))
方法一:
- 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循環(huán)打印下面這句話中字母數(shù)不大于6的單詞(某企業(yè)面試真題)。
腳本:
- #!/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
結(jié)果:
責(zé)任編輯:趙寧寧
來源:
今日頭條