For循環(huán)場景示例

[root@shell /scripts]# cat for-11.sh

#!/bin/bash

for i in $(seq 20 29)

do

? ? date -s "2020/02/$i"? && touch? $(date +%F).txt

? ? echo "$(date +%F).txt文件創(chuàng)建成功..............."

done

[root@shell /scripts]# sh for-11.sh

Thu Feb 20 00:00:00 CST 2020

2020-02-20.txt文件創(chuàng)建成功...............

Fri Feb 21 00:00:00 CST 2020

2020-02-21.txt文件創(chuàng)建成功...............

Sat Feb 22 00:00:00 CST 2020

2020-02-22.txt文件創(chuàng)建成功...............

Sun Feb 23 00:00:00 CST 2020

2020-02-23.txt文件創(chuàng)建成功...............

Mon Feb 24 00:00:00 CST 2020

2020-02-24.txt文件創(chuàng)建成功...............

Tue Feb 25 00:00:00 CST 2020

2020-02-25.txt文件創(chuàng)建成功...............

Wed Feb 26 00:00:00 CST 2020

2020-02-26.txt文件創(chuàng)建成功...............

Thu Feb 27 00:00:00 CST 2020

2020-02-27.txt文件創(chuàng)建成功...............

Fri Feb 28 00:00:00 CST 2020

2020-02-28.txt文件創(chuàng)建成功...............

Sat Feb 29 00:00:00 CST 2020

2020-02-29.txt文件創(chuàng)建成功...............

[root@shell /scripts]# ll

total 1004

-rw-r--r-- 1 root root? ? ? 0 2020-02-20 00:00 2020-02-20.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-21 00:00 2020-02-21.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-22 00:00 2020-02-22.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-23 00:00 2020-02-23.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-24 00:00 2020-02-24.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-25 00:00 2020-02-25.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-26 00:00 2020-02-26.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-27 00:00 2020-02-27.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-28 00:00 2020-02-28.txt

-rw-r--r-- 1 root root? ? ? 0 2020-02-29 00:00 2020-02-29.txt

2. 通過讀入文件的方式,進(jìn)行批量的創(chuàng)建用戶

[root@shell /scripts]# cat test.txt

aaaaa

bbbbb

ccccc

ddddd

eeeee

1. for循環(huán)怎么通過文件的方式取值用戶

2. 判斷用戶是否存在該系統(tǒng),存在則不進(jìn)行創(chuàng)建

3. 如果不存在,則進(jìn)行創(chuàng)建用戶

4. 將創(chuàng)建的結(jié)果顯示出來

[root@shell /scripts]# \cat for-12.sh

#!/bin/bash

for i in $(cat test.txt)

do

? ? id $i &>/dev/null

? ? if [ $? -eq 0 ];then

? ? ? ? echo "用戶${i}已經(jīng)存在無需再次創(chuàng)建!"

? ? else

? ? ? ? useradd? $i &>/dev/null

? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? echo "用戶${i}創(chuàng)建成功!"

? ? ? ? else

? ? ? ? ? ? echo "用戶${i}創(chuàng)建失敗!"

? ? ? ? fi

? ? fi

done

[root@shell /scripts]# sh for-12.sh

用戶aaaaa創(chuàng)建成功!

用戶bbbbb創(chuàng)建成功!

用戶ccccc創(chuàng)建成功!

用戶ddddd創(chuàng)建成功!

用戶eeeee創(chuàng)建成功!

[root@shell /scripts]# sh for-12.sh

用戶aaaaa已經(jīng)存在無需再次創(chuàng)建!

用戶bbbbb已經(jīng)存在無需再次創(chuàng)建!

用戶ccccc已經(jīng)存在無需再次創(chuàng)建!

用戶ddddd已經(jīng)存在無需再次創(chuàng)建!

用戶eeeee已經(jīng)存在無需再次創(chuàng)建!

[root@shell /scripts]# tail -5 /etc/passwd

aaaaa:x:1003:1003::/home/aaaaa:/bin/bash

bbbbb:x:1004:1004::/home/bbbbb:/bin/bash

ccccc:x:1005:1005::/home/ccccc:/bin/bash

ddddd:x:1006:1006::/home/ddddd:/bin/bash

eeeee:x:1007:1007::/home/eeeee:/bin/bash

3. 根據(jù)文件進(jìn)行創(chuàng)建用戶,文件內(nèi)容為:user:pass? 怎么進(jìn)行批量的創(chuàng)建用戶及設(shè)置密碼

1. for循環(huán)怎么通過文件的方式獲取用戶和密碼信息

2. 判斷用戶是否存在該系統(tǒng),存在則不進(jìn)行創(chuàng)建,也不設(shè)置密碼

3. 如果不存在,則進(jìn)行創(chuàng)建用戶并設(shè)置對(duì)應(yīng)密碼

4. 將創(chuàng)建的結(jié)果顯示出來

[root@shell /scripts]# cat user.txt

abc:rguherug

abb:rughituhg

aba:geurhguti

abd:ghiuerhgr

[root@shell /scripts]# cat for-13.sh

#!/bin/bash

for i in? $(cat user.txt)

do

? ? User=$(echo $i|awk -F: '{print $1}')

? ? Pass=$(echo $i|awk -F: '{print $2}')

? ? id $User &>/dev/null

? ? if [ $? -eq 0 ];then

? ? ? ? echo "用戶${User}已經(jīng)存在!無需再次創(chuàng)建!"

? ? else

? ? ? ? useradd $User &>/dev/null && echo $Pass |passwd --stdin $User? &>/dev/null

? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? echo "用戶${User}創(chuàng)建成功!密碼也設(shè)置成功!"

? ? ? ? else

? ? ? ? ? ? echo "用戶${User}創(chuàng)建失敗!"

? ? ? ? fi

? ? fi

done

[root@shell /scripts]# sh for-13.sh

用戶abc創(chuàng)建成功!密碼也設(shè)置成功!

用戶abb創(chuàng)建成功!密碼也設(shè)置成功!

用戶aba創(chuàng)建成功!密碼也設(shè)置成功!

用戶abd創(chuàng)建成功!密碼也設(shè)置成功!

[root@shell /scripts]# sh for-13.sh

用戶abc已經(jīng)存在!無需再次創(chuàng)建!

用戶abb已經(jīng)存在!無需再次創(chuàng)建!

用戶aba已經(jīng)存在!無需再次創(chuàng)建!

用戶abd已經(jīng)存在!無需再次創(chuàng)建!

4. 批量創(chuàng)建用戶,首先執(zhí)行腳本時(shí),輸入用戶的前綴,前綴必須是字母,提示用戶輸入用戶的后綴,即為創(chuàng)建用戶的數(shù)量,后綴必須為整數(shù)。進(jìn)行創(chuàng)建用戶如: oldboy1? oldboy2? ... oldboy10

前綴為: oldboy

后綴為: 10

oldboy1? oldboy2? ... oldboy10

[root@shell /scripts]# cat for-14.sh

#!/bin/bash

read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):" Qz

if [[ ! $Qz =~ ^[a-Z]+$ ]];then

? ? echo "你輸入的前綴不是由字母組成的!"

? ? exit

fi

read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):" Hz

if [[ ! $Hz =~ ^[0-9]+$ ]];then

? ? echo "你輸入創(chuàng)建用戶的數(shù)量不是整數(shù)!"

? ? exit

fi

echo "你接下來要?jiǎng)?chuàng)建的用戶為${Qz}1..${Qz}${Hz}。"

read -p "你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:" Qr

case $Qr in

? ? Yes|Y|y|yes)

? ? ? ? ? ? for i in $(seq $Hz)

? ? ? ? ? ? do

? ? ? ? ? ? ? ? User=${Qz}${i}

? ? ? ? ? ? ? ? id $User &>/dev/null

? ? ? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? ? ? echo "用戶${User}已經(jīng)存在!無需再次創(chuàng)建!"

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? useradd $User &>/dev/null

? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建成功!"

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建失?。?

? ? ? ? ? ? ? ? ? ? fi

? ? ? ? ? ? ? ? fi

? ? ? ? ? ? done

? ? ? ? ? ? ;;

? ? No|N|n|no)

? ? ? ? ? ? echo "你選擇不創(chuàng)建用戶!你想好了再創(chuàng)建!"

? ? ? ? ? ? exit

? ? ? ? ? ? ;;

? ? *)

? ? ? ? ? ? echo "請(qǐng)按照要求輸入[Yes|No]。"

? ? ? ? ? ? exit

esac

[root@shell /scripts]# sh for-14.sh

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):aaa

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5

你接下來要?jiǎng)?chuàng)建的用戶為aaa1..aaa5。

你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:n

你選擇不創(chuàng)建用戶!你想好了再創(chuàng)建!

[root@shell /scripts]# sh for-14.sh

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):aaa

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5

你接下來要?jiǎng)?chuàng)建的用戶為aaa1..aaa5。

你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:y

用戶aaa1創(chuàng)建成功!

用戶aaa2創(chuàng)建成功!

用戶aaa3創(chuàng)建成功!

用戶aaa4創(chuàng)建成功!

用戶aaa5創(chuàng)建成功!

[root@shell /scripts]# sh for-14.sh

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):aaa

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5

你接下來要?jiǎng)?chuàng)建的用戶為aaa1..aaa5。

你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:yes

用戶aaa1已經(jīng)存在!無需再次創(chuàng)建!

用戶aaa2已經(jīng)存在!無需再次創(chuàng)建!

用戶aaa3已經(jīng)存在!無需再次創(chuàng)建!

用戶aaa4已經(jīng)存在!無需再次創(chuàng)建!

用戶aaa5已經(jīng)存在!無需再次創(chuàng)建!

[root@shell /scripts]# tail -5 /etc/passwd

aaa1:x:1013:1013::/home/aaa1:/bin/bash

aaa2:x:1014:1014::/home/aaa2:/bin/bash

aaa3:x:1015:1015::/home/aaa3:/bin/bash

aaa4:x:1016:1016::/home/aaa4:/bin/bash

aaa5:x:1017:1017::/home/aaa5:/bin/bash

[root@shell /scripts]#

5. 批量創(chuàng)建用戶,必須是超級(jí)管理員root才用權(quán)限執(zhí)行該腳本,首先執(zhí)行腳本時(shí),輸入用戶的前綴,前綴必須是字母,提示用戶輸入用戶的后綴,即為創(chuàng)建用戶的數(shù)量,后綴必須為整數(shù)。進(jìn)行創(chuàng)建用戶如: oldboy1? oldboy2? ... oldboy10,創(chuàng)建完用戶,并給其設(shè)置10位隨機(jī)密碼,將用戶以 User:$user? ? Pass:$pass? 統(tǒng)一保存到一個(gè)文件中,此密碼文件的權(quán)限為400.

[root@shell /scripts]# cat for-15.sh

#!/bin/bash

#判斷當(dāng)前用戶是否為超級(jí)管理員

if [ ! $USER == "root" -a ! $UID -eq 0 ];then

? ? echo "該用戶${USER}對(duì)此腳本${0}沒有執(zhí)行權(quán)限!"

? ? exit

fi

read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):" Qz

if [[ ! $Qz =~ ^[a-Z]+$ ]];then

? ? echo "你輸入的前綴不是由字母組成的!"

? ? exit

fi

read -p "請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):" Hz

if [[ ! $Hz =~ ^[0-9]+$ ]];then

? ? echo "你輸入創(chuàng)建用戶的數(shù)量不是整數(shù)!"

? ? exit

fi

echo "你接下來要?jiǎng)?chuàng)建的用戶為${Qz}1..${Qz}${Hz}。"

read -p "你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:" Qr

case $Qr in

? ? Yes|Y|y|yes)

? ? ? ? ? ? for i in $(seq $Hz)

? ? ? ? ? ? do

? ? ? ? ? ? ? ? User=${Qz}${i}

? ? ? ? ? ? ? ? id $User &>/dev/null

? ? ? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? ? ? echo "用戶${User}已經(jīng)存在!無需再次創(chuàng)建!"

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? Pass=$(echo $RANDOM | md5sum |cut -c 1-10)

? ? ? ? ? ? ? ? ? ? useradd $User &>/dev/null && echo $Pass |passwd --stdin $User &>/dev/null

? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建成功!密碼也設(shè)置成功!"

? ? ? ? ? ? ? ? ? ? ? ? echo -e "User:${User}\tPass:$Pass" >>pass.txt && chmod 400 pass.txt

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}創(chuàng)建失??!"

? ? ? ? ? ? ? ? ? ? fi

? ? ? ? ? ? ? ? fi

? ? ? ? ? ? done

? ? ? ? ? ? ;;

? ? No|N|n|no)

? ? ? ? ? ? echo "你選擇不創(chuàng)建用戶!你想好了再創(chuàng)建!"

? ? ? ? ? ? exit

? ? ? ? ? ? ;;

? ? *)

? ? ? ? ? ? echo "請(qǐng)按照要求輸入[Yes|No]。"

? ? ? ? ? ? exit

esac

[root@shell /scripts]# sh for-15.sh

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的前綴(必須是字母):bbb

請(qǐng)輸入你要?jiǎng)?chuàng)建用戶的數(shù)量(必須是整數(shù)):5

你接下來要?jiǎng)?chuàng)建的用戶為bbb1..bbb5。

你是否確認(rèn)要?jiǎng)?chuàng)建以上用戶[Yes|No]:y

用戶bbb1創(chuàng)建成功!密碼也設(shè)置成功!

用戶bbb2創(chuàng)建成功!密碼也設(shè)置成功!

用戶bbb3創(chuàng)建成功!密碼也設(shè)置成功!

用戶bbb4創(chuàng)建成功!密碼也設(shè)置成功!

用戶bbb5創(chuàng)建成功!密碼也設(shè)置成功!

[root@shell /scripts]# ll pass.txt

-r-------- 1 root root 150 2020-02-29 01:59 pass.txt

[root@shell /scripts]# cat pass.txt

User:bbb1 Pass:c6fc663545

User:bbb2 Pass:7ec0185fb0

User:bbb3 Pass:b080263990

User:bbb4 Pass:8abefa491d

User:bbb5 Pass:465d97a62f

6. 批量刪除用戶,按照之前創(chuàng)建的用戶進(jìn)行刪除。輸入要?jiǎng)h除用戶的前綴,必須是字母,再輸入要?jiǎng)h除用戶的數(shù)量,必須是整數(shù),再次提示用戶是否確認(rèn)刪除這些用戶。

1. 當(dāng)用戶存在時(shí),才可以進(jìn)行刪除操作

2. 用戶不存在時(shí),則進(jìn)行不刪除操作

[root@shell /scripts]# cat for-16.sh

#!/bin/bash

if [ ! $USER == "root" -a ! $UID -eq 0 ];then

? ? echo "該用戶${USER}對(duì)此腳本${0}沒有執(zhí)行權(quán)限!"

? ? exit

fi

read -p "請(qǐng)輸入你要?jiǎng)h除用戶的前綴(必須是字母):" Qz

if [[ ! $Qz =~ ^[a-Z]+$ ]];then

? ? echo "你輸入的前綴不是全部由字母組成!"

? ? exit

fi

read -p "請(qǐng)輸入你要?jiǎng)h除用戶的數(shù)量(必須是整數(shù)):" Num

if [[ ! $Num =~ ^[0-9]+$ ]];then

? ? echo "你輸入的不是一個(gè)整數(shù)!"

? ? exit

fi

echo "你接下來要?jiǎng)h除的用戶為:${Qz}1..${Qz}$Num"

read -p "你是否確認(rèn)刪除以上用戶[Yes|No]:" Qr

case $Qr in

? ? ? ? Yes|y|Y|yes)

? ? ? ? ? ? for i in $(seq $Num)

? ? ? ? ? ? do

? ? ? ? ? ? ? ? User=${Qz}$i

? ? ? ? ? ? ? ? id $User &>/dev/null

? ? ? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? ? ? userdel -r $User &>/dev/null

? ? ? ? ? ? ? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}刪除成功!"

? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? ? echo "用戶${User}刪除失?。?

? ? ? ? ? ? ? ? ? ? fi

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? echo "用戶${User}不存在于該系統(tǒng)!無法進(jìn)行刪除操作!"

? ? ? ? ? ? ? ? fi

? ? ? ? ? ? done

? ? ? ? ? ? ;;

? ? ? ? No|N|no|n)

? ? ? ? ? ? echo "你選擇不刪除這些用戶!"

? ? ? ? ? ? exit

? ? ? ? ? ? ;;

? ? ? ? *)

? ? ? ? ? ? echo "請(qǐng)按照要求輸入!"

? ? ? ? ? ? exit

esac

[root@shell /scripts]# sh for-16.sh

請(qǐng)輸入你要?jiǎng)h除用戶的前綴(必須是字母):aaa

請(qǐng)輸入你要?jiǎng)h除用戶的數(shù)量(必須是整數(shù)):5

你接下來要?jiǎng)h除的用戶為:aaa1..aaa5

你是否確認(rèn)刪除以上用戶[Yes|No]:n

你選擇不刪除這些用戶!

[root@shell /scripts]# sh for-16.sh

請(qǐng)輸入你要?jiǎng)h除用戶的前綴(必須是字母):aaa

請(qǐng)輸入你要?jiǎng)h除用戶的數(shù)量(必須是整數(shù)):5

你接下來要?jiǎng)h除的用戶為:aaa1..aaa5

你是否確認(rèn)刪除以上用戶[Yes|No]:y

用戶aaa1刪除成功!

用戶aaa2刪除成功!

用戶aaa3刪除成功!

用戶aaa4刪除成功!

用戶aaa5刪除成功!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容