1 要求

编写脚本文件,完成对信息的增删改查功能:
1、main.sh脚本执行完后,出现菜单选项,如果选择为1时,则可以添加信息;若为2时则可以删除指定信息,当选择为3时则可修改用户信息,当选择为4时则查询特定用户,当选择为5时可以查看所有用户的信息,当选择为0时则退出系统。
2、add.sh脚本用于实现添加用户信息。
3、delete.sh脚本通过用户名,找到配置文件中对应记录,并将其删除,考虑到用户可能误操作,因此要真正删除用户信息前,先进行确认。
4、update.sh脚本根据输入的信息进行替换,先确认是否需要替换该替换该用户信息,再依次输入详细信息进行替换。

2 代码

main.sh

#!/bin/bash
function show(){echo ""
echo "        ********************************"
echo "        *     欢迎使用用户管理系统     *"
echo "        *                              *"
echo "        *        1、添加用户           *"
echo "        *        2、删除用户           *"
echo "        *        3、更新用户信息       *"
echo "        *        4、查询用户           *"
echo "        *        5、查看所有用户       *"
echo "        *        0、退出系统           *"
echo "        *                              *"
echo "        ********************************"
}while true
doshowread -p "请输入你的选择:" choicecase $choice in1)sh add.sh;;2)sh delete.sh;;3)sh update.sh;;4)sh select_user.sh;;5)sh select_all.sh;;0)exit 1;;esac
done
exit 0

add.sh

#!/bin/bash# set Attribute
# $1: 参数名  $2 : 最多位数
setAtt(){read -p "请输入$1:" temp;len=${#temp}while [ $len -gt $2 ]doread -p "输入错误,$1最多$2位,请重新输入$1:" templen=${#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/bash
function delete(){echo "==================================="
read -p "请输入需要删除的ID:" id
n=1
success="false"
# 遍历用户信息
read -p "确认删除吗?(1确认,0取消)" okif [ "$ok" == "0" ]
thenecho "...取消删除"success="quit"
fifor line in `cat user_info.txt`
do
ID=""
#将用户数据分隔成数组
OLD_IFS="$IFS"
IFS="-"
info=($line)
IFS="$OLD_IFS"
# 如果输入的id与用户表中的ID一致,则进行删除
if [ "$ok" == "1" ]
thensuccess="true"sed -i "${n}d" user_info.txtbreak
fi
let n+=1done
# 根据删除成功的标志删除提示信息
if [ $success == "true" ]
then
echo "删除成功"
elif [ $success != "quit" ]
thenecho "删除失败,没有找到这个ID"
fi}
delete

Update.sh

#!/bin/bash
echo "==================================="
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=1
old_info=""
for line in `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]}" ]
then
case $choice in1)read -p "请输入新的值:" valueuser_info="$value-${info[1]}-${info[2]}-${info[3]}-${info[4]}-${info[5]}-${info[6]}";;2)read -p "请输入新的值:" valueuser_info="${info[0]}-$value-${info[2]}-${info[3]}-${info[4]}-${info[5]}-${info[6]}";;3)read -p "请输入新的值:" valueuser_info="${info[0]}-${info[1]}-$value-${info[3]}-${info[4]}-${info[5]}-${info[6]}";;4)read -p "请输入新的值:" valueuser_info="${info[0]}-${info[1]}-${info[2]}-$value-${info[4]}-${info[5]}-${info[6]}";;5)read -p "请输入新的值:" valueuser_info="${info[0]}-${info[1]}-${info[2]}-${info[3]}-$value-${info[5]}-${info[6]}";;6)read -p "请输入新的值:" valueuser_info="${info[0]}-${info[1]}-${info[2]}-${info[3]}-${info[4]}-$value-${info[6]}";;7)read -p "请输入新的值:" valueuser_info="${info[0]}-${info[1]}-${info[2]}-${info[3]}-${info[4]}-${info[5]}-$value";;8)echo "请输入新数据"read -p "请输入ID:" IDread -p "请输入用户名:" nameread -p "请输入密码:" passwordread -p "请输入角色:" roleread -p "请输入性别:" sexread -p "请输入年龄:" ageread -p "请输入电话:" phoneuser_info="$ID-$name-$password-$role-$sex-$age-$phone";;esacsuccess="true"break
fi
success="not_found"
#echo "n = $n"
let n+=1
done
if [ $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=1
echo "用户信息如下"
echo -e 'ID\t用户名\t密码\t角色\t性别\t年龄\t电话'
for line in `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]}"break
filet n+=1
done# echo "success is $success"
if [ $success != "true" ]
thenecho "查询失败,没有找到该用户"
fi

Select_all.sh

#!/bin/bashsuccess="false"
echo "======================================"
n=1
echo "用户信息如下"
echo -e "ID\t用户名\t密码\t角色\t性别\t年龄\t电话"
for line in `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]}"
fi
let n+=1
done
# echo "success is $success"
if [ $success != "true" ]
thenecho "查询失败,可能没有找到该用户"
fi

可能会出现的问题:
执行sh ./xxx.sh出现:“Syntax error: “(” unexpected”
解决方法

Shell编程-用户信息管理相关推荐

  1. shell编程(八) : [shell基础] 处理用户输入

    接上一篇文章shell编程(七) : [shell基础] 使用结构化命令 目录 3.3 处理用户输入 3.3.1 命令行参数 1.位置参数 2.对参数进行测试 3.3.2 特殊参数变量 1.参数个数 ...

  2. vim for mysql_一、Vim编辑器 二、用户和组管理 三、软件的安装(jdk,mysql) 四、Shell编程...

    一.Vim编辑器的使用 1. vim编辑器的运行模式 编辑模式:等待用户编辑命令的输入 插入模式:编辑文本内容 命令模式:执行命令 2. 使用 :vim 文件名 3. 查看当前vim编辑器介绍:vim ...

  3. 小编程(三):用户登录注册界面开发及用户信息管理案例代码详解

    用户登录注册界面开发及用户信息管理案例详解 刚开始接触Android编程,这算是我写的第一个简单工程,主要功能有:用户登录.注册.注销.修改密码.记住密码共5个基本操作,其内容涉及到以下几点: 1:B ...

  4. Shell编程面试题4_批量创建Linux用户并设置密码

    老男孩出的Shell编程企业面试题4: 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串). 我的Shell脚本如下: #!/bin/bashfor num i ...

  5. 如让自己想学不好shell编程都困难?

    众所周知,shell是linux运维必备的技术,必须要掌握,但是shell语法复杂,灵活,网友掌握了语法也不知道如何应用到实际运维中,老男孩培训shell编程给所有linux运维人员带来了学好shel ...

  6. shell编程系列7--shell中常用的工具find、locate、which、whereis

    shell编程系列7--shell中常用的工具find.locate.which.whereis1.文件查找之find命令语法格式:find [路径] [选项] [操作]选项 -name 根据文件名查 ...

  7. shell 不等于_关于shell编程中的整数值比较的两种方式的简单操作实例

    谈一谈关于shell编程中的整数值比较的两种方式 Shell编程有时处理一个对象时,需要我们对对象进行测试. 只有符合要求的才采取下一步操作,这样做的好处可以避免程序出错. 这个测试的对象可以是文件. ...

  8. Linux学习(十四)---大数据定制篇Shell编程

    文章目录 一.为什么要学习shell编程 二.Shell 是什么 三.shell 编程快速入门-Shell 脚本的执行方式 3.1 脚本格式要求 3.2 编写第一个 Shell 脚本 3.3 脚本的常 ...

  9. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

最新文章

  1. 零基础入门学习 Python(4)条件分支、while循环、逻辑连接符、引入外援
  2. IDEA下找不到diagrams按钮选项的解决方案
  3. 指针-指向函数指针数组的指针
  4. 反思深度思考:不无脑的行动 有脑的持久行动
  5. ueditor php版使用,ueditor 1.2.6 使用方法说明
  6. 亿级流量网站架构核心技术_关于大型网站系统架构你不得不懂的10个问题
  7. 介绍一些知识图谱的实际应用类项目
  8. 程序员都在用什么高效率的工具?
  9. 什么是eSIM技术,eSIM的工作原理以及为什么eSIM会很重要
  10. Python 虚拟环境安装 ,避免影响生产环境。
  11. python 输入中文_【提醒】Python新手开发人员注意事项:不要误输入中文标点符号...
  12. HTML5 DOM File API 转)
  13. G面经prepare: BuyGoods
  14. 李珣动态爱心代码教程
  15. 可以嵌入ppt的课堂点名器_宏大智慧课堂支招:孩子和学霸的差距,就在课上课下55分钟里...
  16. html单元格加斜线,怎样在表格中加斜线 选中第一个单元格,进入下一步
  17. 猫和计算机连接网络,猫、路由器和网卡的连接教程[图文]
  18. hr标签html样式,hr标签样式修改及美化(css的hr标签实现精美线条)
  19. Main concerns of fDSST tracker
  20. 2020蓝天杯论文评比系统_2020年杭州市初中数学核心组教师高级研修培训系列视频(十一)...

热门文章

  1. 强制锁定IE主页的方法
  2. Salesforce的Dataloader安装说明
  3. 基于Python+Neo4j+民航数据 ,我搭建了一个知识图谱的自动问答系统
  4. C语言微博用户管理系统
  5. layui指定单元格变色
  6. 史上最简单的扫雷(C语言实现)
  7. 如何批量筛选QQ邮箱是否开通 筛选邮箱是否存在
  8. 超值内容来袭,拼多多首推全新微服务进阶指南(全彩版)简直不要太香
  9. 神魔大陆服务器修复,《神魔大陆2·神启》5月23日全服更新公告
  10. 哪个血糖仪品牌更好?真睿血糖仪一定要来了解下