[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删除成功!