1 要求
编写脚本文件,完成对信息的增删改查功能:
1、main.sh脚本执行完后,出现菜单选项,如果选择为1时,则可以添加信息;若为2时则可以删除指定信息,当选择为3时则可修改用户信息,当选择为4时则查询特定用户,当选择为5时可以查看所有用户的信息,当选择为0时则退出系统。
2、add.sh脚本用于实现添加用户信息。
3、delete.sh脚本通过用户名,找到配置文件中对应记录,并将其删除,考虑到用户可能误操作,因此要真正删除用户信息前,先进行确认。
4、update.sh脚本根据输入的信息进行替换,先确认是否需要替换该替换该用户信息,再依次输入详细信息进行替换。
2 代码
main.sh
#!/bin/bashfunctionshow(){echo""echo" ********************************"echo" * 欢迎使用用户管理系统 *"echo" * *"echo" * 1、添加用户 *"echo" * 2、删除用户 *"echo" * 3、更新用户信息 *"echo" * 4、查询用户 *"echo" * 5、查看所有用户 *"echo" * 0、退出系统 *"echo" * *"echo" ********************************"}whiletruedo
show
read -p "请输入你的选择:" choice
case$choicein1)sh add.sh
;;2)sh delete.sh
;;3)sh update.sh
;;4)sh select_user.sh
;;5)sh select_all.sh
;;0)exit1;;esacdoneexit0
add.sh
#!/bin/bash# set Attribute# $1: 参数名 $2 : 最多位数setAtt(){read -p "请输入$1:" temp;len=${#temp}while[$len -gt $2]doread -p "输入错误,$1最多$2位,请重新输入$1:" temp
len=${#temp}doneecho$temp}success="true"while$successdoecho"====================================="echo"请添加用户"ID=$(setAtt ID 3)name=$(setAtt 用户名 3)password=$(setAtt 密码 10)role=$(setAtt 角色 6)sex=$(setAtt 性别 3)age=$(setAtt 年龄 3)phone=$(setAtt 电话号码 11)success="false"doneuser_info="$ID-$name-$password-$role-$sex-$age-$phone"echo"$user_info">> user_info.txt
echo"添加成功"
Delete.sh
#!/bin/bashfunctiondelete(){echo"==================================="read -p "请输入需要删除的ID:"idn=1success="false"# 遍历用户信息read -p "确认删除吗?(1确认,0取消)" ok
if["$ok"=="0"]thenecho"...取消删除"success="quit"fiforlinein`cat user_info.txt`doID=""#将用户数据分隔成数组OLD_IFS="$IFS"IFS="-"info=($line)IFS="$OLD_IFS"# 如果输入的id与用户表中的ID一致,则进行删除if["$ok"=="0"]thensuccess="true"sed -i "${n}d" user_info.txt
breakfiletn+=1done# 根据删除成功的标志删除提示信息if[$success=="true"]thenecho"删除成功"elif[$success!="quit"]thenecho"删除失败,没有找到这个ID"fi}
delete
Update.sh
#!/bin/bashecho"==================================="success="false"read -p "请输入要修改的用户的用户名:" name
echo" ******************************"echo" * *"echo" * 1、修改id *"echo" * 2、修改用户名 *"echo" * 3、修改密码 *"echo" * 4、修改角色 *"echo" * 5、修改性别 *"echo" * 6、修改年龄 *"echo" * 7、修改电话 *"echo" * 8、修改全部 *"echo" * *"echo" ******************************"read -p "请选择需要修改的选项:" choice
n=1old_info=""forlinein`cat user_info.txt`do#存下原来的数据old_info=($line)#将用户数据分隔成数组OLD_IFS="$IFS"IFS="-"info=($line)IFS="$OLD_IFS"#echo "now id is : ${info[0]},input id is : $id"if["$name"=="${info[1]}"]thencase$choicein1)read -p "请输入新的值:" value
user_info="$value-${info[1]}-${info[2]}-${info[3]}-${info[4]}-${info[5]}-${info[6]}";;2)read -p "请输入新的值:" value
user_info="${info[0]}-$value-${info[2]}-${info[3]}-${info[4]}-${info[5]}-${info[6]}";;3)read -p "请输入新的值:" value
user_info="${info[0]}-${info[1]}-$value-${info[3]}-${info[4]}-${info[5]}-${info[6]}";;4)read -p "请输入新的值:" value
user_info="${info[0]}-${info[1]}-${info[2]}-$value-${info[4]}-${info[5]}-${info[6]}";;5)read -p "请输入新的值:" value
user_info="${info[0]}-${info[1]}-${info[2]}-${info[3]}-$value-${info[5]}-${info[6]}";;6)read -p "请输入新的值:" value
user_info="${info[0]}-${info[1]}-${info[2]}-${info[3]}-${info[4]}-$value-${info[6]}";;7)read -p "请输入新的值:" value
user_info="${info[0]}-${info[1]}-${info[2]}-${info[3]}-${info[4]}-${info[5]}-$value";;8)echo"请输入新数据"read -p "请输入ID:" ID
read -p "请输入用户名:" name
read -p "请输入密码:" password
read -p "请输入角色:" role
read -p "请输入性别:" sex
read -p "请输入年龄:" age
read -p "请输入电话:" phone
user_info="$ID-$name-$password-$role-$sex-$age-$phone";;esacsuccess="true"breakfisuccess="not_found"#echo "n = $n"letn+=1doneif[$success=="not_found"]thenecho"可能没有找到该用户"elseecho"原数据: $old_info"echo"修改后: $user_info"read -p "确认修改吗?(1确认,0取消):" ok
fiif["$ok"=="1"]then#删除这条数据sed -i "${n}d" user_info.txt
#插入新数据echo"$user_info">> user_info.txt
elif["$ok"=="0"]thensuccess="quit"echo"...取消操作"fiif[$success=="true"]thenecho"更新成功"fi
Select_user.sh
#!/bin/bashsuccess="false"echo"====================================="read -p "请输入要更新用户的用户名:" name
n=1echo"用户信息如下"echo -e 'ID\t用户名\t密码\t角色\t性别\t年龄\t电话'forlinein`cat user_info.txt`do#将用户数据分隔成数组OLD_IFS="$IFS"IFS="-"info=($line)IFS="$OLD_IFS"#echo "now id is : ${info[0]},input name is : $name"if["$name"=="${info[1]}"]thensuccess="true"echo -e "${info[0]}\t${info[1]}\t${info[2]}\t${info[3]}\t${info[4]}\t${info[5]}\t${info[6]}"breakfiletn+=1done# echo "success is $success"if[$success!="true"]thenecho"查询失败,没有找到该用户"fi
Select_all.sh
#!/bin/bashsuccess="false"echo"======================================"n=1echo"用户信息如下"echo -e "ID\t用户名\t密码\t角色\t性别\t年龄\t电话"forlinein`cat user_info.txt`do#将用户数据分隔成数组OLD_IFS="$IFS"IFS="-"info=($line)IFS="$OLD_IFS"#echo "now id is : ${info[0]},input id is : $id"if[ -n "$line"]thensuccess="true"echo -e "${info[0]}\t${info[1]}\t${info[2]}\t${info[3]}\t${info[4]}\t${info[5]}\t${info[6]}"filetn+=1done# echo "success is $success"if[$success!="true"]thenecho"查询失败,可能没有找到该用户"fi
可能会出现的问题:
执行sh ./xxx.sh出现:“Syntax error: “(” unexpected”
解决方法
版权归原作者 冰咖啡iii 所有, 如有侵权,请联系我们删除。