• 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

  • 相关阅读:
    BZOJ 3158: 千钧一发
    BZOJ 1677: [Usaco2005 Jan]Sumsets 求和
    BZOJ 1574: [Usaco2009 Jan]地震损坏Damage
    BZOJ 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课
    BZOJ 1715: [Usaco2006 Dec]Wormholes 虫洞
    BZOJ 1634: [Usaco2007 Jan]Protecting the Flowers 护花
    Vijos P1740聪明的质检员
    Vijos P1680距离
    Vijos P1067Warcraft III 守望者的烦恼
    BZOJ 1385: [Baltic2000]Division expression
  • 原文地址:https://www.cnblogs.com/tanxiaojuncom/p/11455152.html
Copyright © 2020-2023  润新知