shell脚本编写用户管理系统

 作业要求:

输出如图所示的图形,编写代码可以实现所有的要求

#! /bin/bash

#这是创建用户管理系统的脚本

#Date:2019年9月3号

#filename:user.sh

#用到了判断、循环,思路很清晰,中等难度

#自己写一个这样的框

echo "
//===========================\
|                      用户管理系统                              |
---------------------------------------------------
|                      1、创建用户                               |
|                      2、删除用户                               |
|                      3、锁定用户                               |
|                      4、解锁用户                               |
|                      5、查看用户                               |
|                      6、退出脚本                               |
---------------------------------------------------
"

#写一个循环

while :
do

#执行操作,输入你要操作的序号(1、2、3、4、5、6)

read -p "请输入你的操作选择:" user

#创建用户,user输入1时,写一个if条件语句

if [ $user -eq 1 ]
then
read -p "请输入你的用户名:" name

#判断输入的用户名是否存在,若存在可以查看用户id,该命令能够执行,返回值1,说明用户已存在不能创建了;若用户不存在,就无法执行该命令,返回值为0,就可以创建用户
id $name &> /dev/null
if [ $? -eq 0 ]
then
echo "******用户已存在!******"
else
read -p "请输入密码:" mi
useradd $name && echo "$mi" | passwd --stdin $name &> /dev/null
echo "******用户创建成功!******"
fi
fi

#删除用户,先查看用户存不存在,还是查看用户id看命令执行后的返回值,若返回值为0说明用户存在,执行删除操作;若返回值为1说明用户不存在

if [ $user -eq 2 ]
then
read -p "请输入你的用户名:" name
id $name &> /dev/null
if [ $? -eq 0 ]
then
userdel -r $name
echo "******删除用户成功!******"
else
echo "******用户不存在!******"
fi
fi

#锁定用户
if [ $user -eq 3 ]
then
read -p "请输入你的用户名:" name

#从/etc/passwd文件中过滤你要操作的用户名,从找出的用户中过滤出‘!’,若该命令过滤出‘!’了,说明该用户已被锁定
grep $name /etc/shadow | grep '!' &> /dev/null

if [ $? -ne 0 ]
then
passwd -l $name &> /dev/null
echo "******已成功锁定用户!******"
else
echo "******锁定用户不成功!******"
fi
fi

#解锁用户
if [ $user -eq 4 ]
then
read -p "请输入你的用户名:" name
grep $name /etc/shadow | grep '!' &> /dev/null

if [ $? -eq 0 ]
then
passwd -u -f $name &> /dev/null
echo "******解锁用户成功!******"
else
echo "******锁定用户不成功!******"
fi
fi

#查看用户,先查看用户存不存在,再根据命令的返回值查看用户
if [ $user -eq 5 ]
then
read -p "请输入你的用户名:" name
grep $name /etc/passwd &> /dev/null

if [ $? -eq 0 ]
then
finger $name
echo "******查看用户成功!******"
else
echo "******用户不存在!******"
fi
fi

#退出脚本
if [ $user -eq 6 ]
then

exit
fi

done

原文地址:https://www.cnblogs.com/tanxiaojuncom/p/11455152.html