兩個實用的shell指令碼例項
阿新 • • 發佈:2020-11-24
今天主要分享兩個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