1. 程式人生 > 實用技巧 >兩個實用的shell指令碼例項

兩個實用的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

廣州品牌設計公司https://www.houdianzi.com

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