For循环场景示例

[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文件创建成功..............."

done

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

Thu Feb 20 00:00:00 CST 2020

2020-02-20.txt文件创建成功...............

Fri Feb 21 00:00:00 CST 2020

2020-02-21.txt文件创建成功...............

Sat Feb 22 00:00:00 CST 2020

2020-02-22.txt文件创建成功...............

Sun Feb 23 00:00:00 CST 2020

2020-02-23.txt文件创建成功...............

Mon Feb 24 00:00:00 CST 2020

2020-02-24.txt文件创建成功...............

Tue Feb 25 00:00:00 CST 2020

2020-02-25.txt文件创建成功...............

Wed Feb 26 00:00:00 CST 2020

2020-02-26.txt文件创建成功...............

Thu Feb 27 00:00:00 CST 2020

2020-02-27.txt文件创建成功...............

Fri Feb 28 00:00:00 CST 2020

2020-02-28.txt文件创建成功...............

Sat Feb 29 00:00:00 CST 2020

2020-02-29.txt文件创建成功...............

[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. 通过读入文件的方式,进行批量的创建用户

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

aaaaa

bbbbb

ccccc

ddddd

eeeee

1. for循环怎么通过文件的方式取值用户

2. 判断用户是否存在该系统,存在则不进行创建

3. 如果不存在,则进行创建用户

4. 将创建的结果显示出来

[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}已经存在无需再次创建!"

    else

        useradd  $i &>/dev/null

        if [ $? -eq 0 ];then

            echo "用户${i}创建成功!"

        else

            echo "用户${i}创建失败!"

        fi

    fi

done

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

用户aaaaa创建成功!

用户bbbbb创建成功!

用户ccccc创建成功!

用户ddddd创建成功!

用户eeeee创建成功!

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

用户aaaaa已经存在无需再次创建!

用户bbbbb已经存在无需再次创建!

用户ccccc已经存在无需再次创建!

用户ddddd已经存在无需再次创建!

用户eeeee已经存在无需再次创建!

[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. 根据文件进行创建用户,文件内容为:user:pass  怎么进行批量的创建用户及设置密码

1. for循环怎么通过文件的方式获取用户和密码信息

2. 判断用户是否存在该系统,存在则不进行创建,也不设置密码

3. 如果不存在,则进行创建用户并设置对应密码

4. 将创建的结果显示出来

[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}已经存在!无需再次创建!"

    else

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

        if [ $? -eq 0 ];then

            echo "用户${User}创建成功!密码也设置成功!"

        else

            echo "用户${User}创建失败!"

        fi

    fi

done

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

用户abc创建成功!密码也设置成功!

用户abb创建成功!密码也设置成功!

用户aba创建成功!密码也设置成功!

用户abd创建成功!密码也设置成功!

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

用户abc已经存在!无需再次创建!

用户abb已经存在!无需再次创建!

用户aba已经存在!无需再次创建!

用户abd已经存在!无需再次创建!

4. 批量创建用户,首先执行脚本时,输入用户的前缀,前缀必须是字母,提示用户输入用户的后缀,即为创建用户的数量,后缀必须为整数。进行创建用户如: oldboy1  oldboy2  ... oldboy10

前缀为: oldboy

后缀为: 10

oldboy1  oldboy2  ... oldboy10

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

#!/bin/bash

read -p "请输入你要创建用户的前缀(必须是字母):" Qz

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

    echo "你输入的前缀不是由字母组成的!"

    exit

fi

read -p "请输入你要创建用户的数量(必须是整数):" Hz

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

    echo "你输入创建用户的数量不是整数!"

    exit

fi

echo "你接下来要创建的用户为${Qz}1..${Qz}${Hz}。"

read -p "你是否确认要创建以上用户[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}已经存在!无需再次创建!"

                else

                    useradd $User &>/dev/null

                    if [ $? -eq 0 ];then

                        echo "用户${User}创建成功!"

                    else

                        echo "用户${User}创建失败!"

                    fi

                fi

            done

            ;;

    No|N|n|no)

            echo "你选择不创建用户!你想好了再创建!"

            exit

            ;;

    *)

            echo "请按照要求输入[Yes|No]。"

            exit

esac

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

请输入你要创建用户的前缀(必须是字母):aaa

请输入你要创建用户的数量(必须是整数):5

你接下来要创建的用户为aaa1..aaa5。

你是否确认要创建以上用户[Yes|No]:n

你选择不创建用户!你想好了再创建!

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

请输入你要创建用户的前缀(必须是字母):aaa

请输入你要创建用户的数量(必须是整数):5

你接下来要创建的用户为aaa1..aaa5。

你是否确认要创建以上用户[Yes|No]:y

用户aaa1创建成功!

用户aaa2创建成功!

用户aaa3创建成功!

用户aaa4创建成功!

用户aaa5创建成功!

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

请输入你要创建用户的前缀(必须是字母):aaa

请输入你要创建用户的数量(必须是整数):5

你接下来要创建的用户为aaa1..aaa5。

你是否确认要创建以上用户[Yes|No]:yes

用户aaa1已经存在!无需再次创建!

用户aaa2已经存在!无需再次创建!

用户aaa3已经存在!无需再次创建!

用户aaa4已经存在!无需再次创建!

用户aaa5已经存在!无需再次创建!

[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. 批量创建用户,必须是超级管理员root才用权限执行该脚本,首先执行脚本时,输入用户的前缀,前缀必须是字母,提示用户输入用户的后缀,即为创建用户的数量,后缀必须为整数。进行创建用户如: oldboy1  oldboy2  ... oldboy10,创建完用户,并给其设置10位随机密码,将用户以 User:$user    Pass:$pass  统一保存到一个文件中,此密码文件的权限为400.

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

#!/bin/bash

#判断当前用户是否为超级管理员

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

    echo "该用户${USER}对此脚本${0}没有执行权限!"

    exit

fi

read -p "请输入你要创建用户的前缀(必须是字母):" Qz

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

    echo "你输入的前缀不是由字母组成的!"

    exit

fi

read -p "请输入你要创建用户的数量(必须是整数):" Hz

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

    echo "你输入创建用户的数量不是整数!"

    exit

fi

echo "你接下来要创建的用户为${Qz}1..${Qz}${Hz}。"

read -p "你是否确认要创建以上用户[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}已经存在!无需再次创建!"

                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}创建成功!密码也设置成功!"

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

                    else

                        echo "用户${User}创建失败!"

                    fi

                fi

            done

            ;;

    No|N|n|no)

            echo "你选择不创建用户!你想好了再创建!"

            exit

            ;;

    *)

            echo "请按照要求输入[Yes|No]。"

            exit

esac

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

请输入你要创建用户的前缀(必须是字母):bbb

请输入你要创建用户的数量(必须是整数):5

你接下来要创建的用户为bbb1..bbb5。

你是否确认要创建以上用户[Yes|No]:y

用户bbb1创建成功!密码也设置成功!

用户bbb2创建成功!密码也设置成功!

用户bbb3创建成功!密码也设置成功!

用户bbb4创建成功!密码也设置成功!

用户bbb5创建成功!密码也设置成功!

[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. 批量删除用户,按照之前创建的用户进行删除。输入要删除用户的前缀,必须是字母,再输入要删除用户的数量,必须是整数,再次提示用户是否确认删除这些用户。

1. 当用户存在时,才可以进行删除操作

2. 用户不存在时,则进行不删除操作

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

#!/bin/bash

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

    echo "该用户${USER}对此脚本${0}没有执行权限!"

    exit

fi

read -p "请输入你要删除用户的前缀(必须是字母):" Qz

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

    echo "你输入的前缀不是全部由字母组成!"

    exit

fi

read -p "请输入你要删除用户的数量(必须是整数):" Num

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

    echo "你输入的不是一个整数!"

    exit

fi

echo "你接下来要删除的用户为:${Qz}1..${Qz}$Num"

read -p "你是否确认删除以上用户[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}不存在于该系统!无法进行删除操作!"

                fi

            done

            ;;

        No|N|no|n)

            echo "你选择不删除这些用户!"

            exit

            ;;

        *)

            echo "请按照要求输入!"

            exit

esac

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

请输入你要删除用户的前缀(必须是字母):aaa

请输入你要删除用户的数量(必须是整数):5

你接下来要删除的用户为:aaa1..aaa5

你是否确认删除以上用户[Yes|No]:n

你选择不删除这些用户!

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

请输入你要删除用户的前缀(必须是字母):aaa

请输入你要删除用户的数量(必须是整数):5

你接下来要删除的用户为:aaa1..aaa5

你是否确认删除以上用户[Yes|No]:y

用户aaa1删除成功!

用户aaa2删除成功!

用户aaa3删除成功!

用户aaa4删除成功!

用户aaa5删除成功!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。