0


Shell编程-用户信息管理

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”
解决方法

标签: linux

本文转载自: https://blog.csdn.net/qq_25015861/article/details/125347208
版权归原作者 冰咖啡iii 所有, 如有侵权,请联系我们删除。

“Shell编程-用户信息管理”的评论:

还没有评论