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

好的,下面是一个用shell脚本编写简单学生选课管理系统。 首先,我们需要创建两个文件:student.txt和course.txt。student.txt文件包含每个学生的姓名、学号和所选课程等基本信息,每个学生信息占据一行,不同字段之间用逗号分隔。course.txt文件包含每门课程的课程号、课程名和教师名等基本信息,每门课程信息占据一行,不同字段之间用逗号分隔。 接下来,我们可以编写一个shell脚本实现学生选课管理系统。该脚本可以循环执行以下操作: 1. 显示菜单,让用户选择要执行的操作,例如选课、退课或查看已选课程等。 2. 根据用户选择的操作,执行相应的命令。例如,如果用户选择选课,则提示用户输入学生学号和要选的课程号,并将该信息添加到student.txt文件中;如果用户选择退课,则提示用户输入学生学号和要退的课程号,并从student.txt中删除该学生的该门课程信息。 3. 循环执行以上两个步骤,直到用户选择退出系统。 下面是一个简单的示例代码,可以作为参考: ```shell #!/bin/bash while true do echo "学生选课管理系统" echo "1. 选课" echo "2. 退课" echo "3. 查看已选课程" echo "0. 退出系统" read -p "请选择要执行的操作:" choice case $choice in 1) read -p "请输入学生学号:" id read -p "请输入要选的课程号:" course_id course_name=$(grep "^$course_id" course.txt | cut -d ',' -f 2) if [ -z "$course_name" ]; then echo "无效的课程号,请重新输入!" else sed -i "/^$id,/d" student.txt echo "$id,$course_id,$course_name" >> student.txt echo "选课成功!" fi ;; 2) read -p "请输入学生学号:" id read -p "请输入要退的课程号:" course_id sed -i "/^$id,$course_id,/d" student.txt echo "退课成功!" ;; 3) read -p "请输入学生学号:" id grep "^$id," student.txt | cut -d ',' -f 2,3 ;; 0) echo "感谢使用学生选课管理系统,再见!" exit 0 ;; *) echo "无效的选择,请重新输入!" ;; esac done ``` 该脚本使用while循环不断显示菜单,让用户选择要执行的操作,然后根据用户的选择执行相应的命令。例如,如果用户选择选课,则提示用户输入学生学号和要选的课程号,并将该信息添加到student.txt文件中;如果用户选择退课,则提示用户输入学生学号和要退的课程号,并从student.txt中删除该学生的该门课程信息。 需要注意的是,该脚本中使用了sed和grep等Linux命令,因此需要在Linux系统中运行。如果您使用的是Windows系统,则需要先安装Cygwin或Git Bash等类Unix环境,才能运行该脚本。 希望这个示例可以帮助您了解如何用shell脚本编写学生选课管理系统。如果您有任何疑问或需要进一步的帮助,请随时告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值