Linux编程用户信息管理Word文档格式.doc
《Linux编程用户信息管理Word文档格式.doc》由会员分享,可在线阅读,更多相关《Linux编程用户信息管理Word文档格式.doc(12页珍藏版)》请在冰豆网上搜索。
menu文件是主菜单,要求运行的时候能显示一个菜单供用户选择;
addusers文件是用来增加信息;
deluser文件是用来删除信息。
在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中选择。
对于任务6和7,需要编写单独的Shell脚本文件(必须分别命名为addusers和deluser)并且在主脚本menu文件中调用这些脚本文件。
2.2功能需求
在不同任务的中,这些操作能自动实现以下功能:
1、在屏幕上显示当前所有用户的记录
2、在屏幕上显示当前所有用户(经过格式化和排序的)的记录
3、只在屏幕上显示用户名和用户ID
4、只在屏幕上显示(经过格式化和排序的)用户名和用户ID
5、查询并显示特定用户的记录
6、往passwd文件里增加新的用户记录
7、从passwd文件里删除某个用户记录
你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。
对于任务6和7,你需要编写单独的Shell脚本文件(必须分别命名为addusers和deluser)并且在你的主脚本menu文件中调用这些脚本文件。
三系统设计
3.1结构层次图
3.2.运行流程
(1)总运行流程
(2)addusers模块运行流程
(3)deluser模块用户运行流程
四系统实现
主菜单:
选择1:
打印当前所有用户
选择2:
打印当前所有用户记录(格式化后)
选择3:
打印用户名和用户ID
选择4:
打印用户名和用户ID(格式化后)
选择5:
查询特定用户
没有输入关键字和输入关键字没有记录:
查找到记录:
选择6:
添加用户
添加成功:
用户名无效情况:
用户名只能是数字或字母,用户名不能为空,
密码无效:
密码不能小于6,密码不能为空,密码只能是数字或字母,密码必须和确认密码相同
用户ID无效:
用户ID不能为空,用户ID不能小于500,用户ID只能为数字
组ID无效:
组ID不能为空,组ID不能小于500,组ID只能为数字
登录shell无效:
shell只能是bash,sh,kash,csh中的一种,shell不能空
选择7:
删除用户
查找用户ID存在,是否要删除选Y,删除成功:
用户ID不存在和没有输入用户ID情况:
用户ID存在,在确认删除选N和其他字符是退出:
选择Q:
退出
不正确选择:
五代码实现
1)主菜单代码
#!
/bin/bash
#删除用户
clear
echo"
用户删除"
========================="
whiletrue
do
read-p"
输入用户ID:
"
userids
if(test`exprmatch"
$userids"
"
[0-9]*"
`-ne`exprlength"
`)then
echo"
输入的用户ID只能是数字,请重新输入"
elif(test-z"
)then
用户ID不能为空"
else
break
fi
done
getuserid=$(awk-F'
:
'
'
$3=="
$userids'
{print$3}'
passwd)
if(test$getuserid)then
read-p"
是否要删除(Y/N):
ack
if(test"
$ack"
="
Y"
sed-i'
/'
/d'
passwd
if(test$?
-eq0)then
echo"
删除成功"
else
删除失败"
break
fi
else
break
fi
用户不存在"
2)用户添加代码
#用户名
新用户添加"
=============================="
echo-n"
请输入用户名:
readusername
a=`exprmatch"
$username"
[0-9a-zA-Z]*"
`
b=`exprlength"
if(test$a-ne$b)then
echo"
用户名只能是数字或字母,请重新输入用户名:
echo"
用户名不能为空,请重新输入用户名:
break
#用户密码
请输入密码:
if(test`exprmatch"
$passwd"
`-ne`exprlength"
`)then
用户密码只能为数字或字母,情重新输入密码"
用户密码不能为空,请输入密码"
elif(test`exprlength"
`-lt6)then
密码长度不能小于6"
请输入确认密码:
ackpw
if(test"
$ackpw"
break
else
两次的密码不匹配"
#用户ID
请输入用户ID:
userid
if(test`exprmatch"
$userid"
用户ID只能为数字"
)then
elif(test$userid-lt500)then
用户ID不能小于500,请重新输入"
#组ID
请输入组ID:
groupid
$groupid"
`)then
组ID只能为数字"
组ID不能为空,请重新输入"
elif(test$groupid-lt500)then
组ID不能小于500,请重新输入"
#登录shell
do
请输入登录shell(bash,shkash,csh):
shellname
if(test"
$shellname"
!
="
bash"
-a"
sh"
kash"
csh"
你输入的shell名不存在本系统中,请重新输入"
#添加用户
userinfo="
$username:
$passwd:
$userid:
$groupid:
/home/$username:
/bin/$shellname"
if(test$?
-ne1)then
echo$userinfo>
>
-eq0)then
echo"
用户添加成功"
用户添加失败"
fi
3)用户删除代码
六