您好,登錄后才能下訂單哦!
兩個實用的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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。