提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默认的 123456 作为默认密码。
一、字符串运算符
二、创建账户
read命令参考网址:https://www.cnblogs.com/xiangzi888/archive/2012/03/27/2420084.html
[root@VM_0_10_centos shellScript]# vi autoCreateUser.sh #!/bin/bash # 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。如果用户 # 不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默 # 认的 123456 作为默认密码。 read -p "Please input a username:" username # -z 判断一个变量是否为空。如果为空,提示用户必须输入账户名并退出脚本,退出码为2 # 没有输入账户名,退出后使用$?查看返回码为2 if [ -z $username ]; then echo "您需要输入账户名" exit 2 fi # 使用stty -echo 关闭shell的回显功能(即在命令行输入的密码为不可见) # 使用stty echo 打开shell的回显功能 stty -echo read -p "Please input a password:" pass stty echo pass=${pass:-123456} useradd "$username" echo "$pass" | passwd --stdin "$username"
运行脚本之前先赋予执行的权限
chmod a+x 脚本名
三、删除账户
使用命令删除账户(-r 连家目录一起删除)
[root@VM_0_10_centos ~]# userdel -r 账户名
# ================================== # 删除账户及家目录 read -p "Please enter an account to delete:" username if [ -z $username ]; then echo "您需要输入删除的账户名" exit 2 fi userdel -r $username echo "The user delete success!"; # ==================================
四、批量创建账户
通过将账户和密码写入一个txt文件,通过脚本读取创建文件中设置的账户和密码
txt文件不作解释,需要注意的一点是账户和密码之间是使用什么作为分隔符,脚本中则需要修改成对应的分隔符
[root@VM_0_10_centos shellScript]# cat createUsers.sh #!/bin/bash # 通过读取users.txt文件批量添加账户 echo $0=$0 echo $1=$1 if [ $# -eq 0 ];then echo "[usage] 请输入批量创建的账户文件:./createUsers.sh users.txt" exit 0 fi # cat命令的输出作为read命令的输入,read读到的值放入line中 cat $1 | while read line do # echo $line(输出一行信息) # awk -F " " 以空格分隔(如果txt中是:,则以:分隔) username=$(echo $line | awk -F " " '{print $1}') pass=$(echo $line | awk -F " " '{print $2}') useradd $username echo "$pass" | passwd --stdin "$username" done
五、批量删除账户
通过将账户和密码写入一个txt文件,通过脚本读取创建文件中设置的账户并删除
[root@VM_0_10_centos shellScript]# cat delUsers.sh #!/bin/bash # 批量删除 echo $0=$0 echo $1=$1 if [ $# -eq 0 ];then echo "[usage] 请输入批量创建的账户文件:./createUsers.sh users.txt" exit 0 fi # cat命令的输出作为read命令的输入,read读到的值放入line中 cat $1 | while read line do # echo $line # awk -F " " 以空格分隔(如果txt中是:,则以:分隔) username=$(echo $line | awk -F " " '{print $1}') userdel -r $username done