Linux电话本的编写-shell脚本编写

news2024/11/9 3:54:45

该电话本可以实现以下功能

1.添加用户

2.查询用户

3.删除用户

4.展示用户

5.退出

代码展示:

#!/bin/bash
 
PHONEBOOK=phonebook.txt
 
function add_contact() {
    echo "Adding new contact..."
    read -p "Enter name: " name
    read -p "Enter phone number: " number
    echo "$name:$number" >> $PHONEBOOK
    echo "Contact added successfully."
}
 
function search_contact() {
    echo "Searching for contact..."
    read -p "Enter name to search: " search_name
    if grep -q "$search_name" $PHONEBOOK; then
        grep "$search_name" $PHONEBOOK
    else
        echo "Contact not found."
    fi
}
 
function list_contacts() {
    echo "Listing all contacts..."
    if [ -s "$PHONEBOOK" ]; then
        cat $PHONEBOOK
    else
        echo "Phonebook is empty."
    fi
}
 
function delete_contact() {
    echo "Deleting contact..."
    read -p "Enter name of contact to delete: " del_name
    if grep -q "$del_name" $PHONEBOOK; then
        sed -i "/$del_name/d" $PHONEBOOK
        echo "Contact deleted successfully."
    else
        echo "Contact not found."
    fi
}
 
function main_menu() {
    echo "1. Add Contact"
    echo "2. Search Contact"
    echo "3. List Contacts"
    echo "4. Delete Contact"
    echo "5. Exit"
    read -p "Enter your choice: " choice
    case $choice in
        
            add_contact
            main_menu
            ;;
        
            search_contact
            main_menu
            ;;
        
            list_contacts
            main_menu
            ;;
        
            delete_contact
            main_menu
            ;;
        
            echo "Exiting phonebook program."
            exit 0
            ;;
        *)
            echo "Invalid choice."
            main_menu
            ;;
    esac
}
 
main_menu

应用展示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1813401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果WWDC24一文总结,携手OpenAi,开启Ai新篇章

北京时间6月11日凌晨1点,苹果2024年全球开发者大会(WWDC)正式开幕。按照往年惯例,每年的WWDC大会,苹果都会将重心放在对新版系统的介绍上,本次也不例外,苹果发布了包括iOS 18、iPadOS18、macOS1…

结构体<C语言>

导言 结构体是C语言中的一种自定义类型,它的值(成员变量)可以是多个,且这些值可以为不同类型,这也是和数组的主要区别,下面将介绍它的一些基本用法,包括:结构体的创建、结构体变量的…

Redis在互联网大厂中的应用案例分析

携程金融的Redis架构 携程金融在经过多年的演进后,形成了多层次的系统架构,其中基础数据(如用户信息、产品信息、订单信息等)由底层系统产生,并服务于所有的金融系统。这些基础数据通过统一的缓存服务(系统名utag)进行缓存。缓存数据具有全量、准实时、永久有效的特点,…

Web前端三大主流框架简介与优缺点对比分析

随着互联网的快速发展,Web前端开发技术不断进步,各种前端框架应运而生,极大地提高了开发效率和用户体验。在众多框架中,React、Vue.js 和 Angular 是目前最受欢迎的三大主流框架。本文将对它们进行详细介绍,并对它们的…

SpringCloud-面试篇(二十五)

(1)Sentinel与Hystix的线程隔离有什么差别? (2)Sentinel的限流与Gateway限流有什么差别 固定窗口计数器算法,可能再其他的时间两个窗口的交界内超过了请求阈值 ,所以就有了滑动窗口算法 滑动窗…

人工智能和机器学习的区别

目录 一、介绍人工智能 二、介绍机器学习 三、人工智能和机器学习的区别和联系? 一、介绍人工智能 先来说下人工智能,人工智能(Artificial Intelligence),英文缩写为AI,通俗来讲就是用机器去做在过去只有…

MATLAB算法实战应用案例精讲-【数模应用】多分类Logit分析(附python、R语言和MATLAB代码实现)

目录 算法原理 成对类别有序logit 簇族数据中的超散布性 条件独立性检验 SPSS-有序多分类Logistic回归 SPSSAU 参照项设置 案例应用 代码实现 R语言 逻辑回归 决策树 随机森林 支持向量机 评价分类的准确性 MATLAB python 算法原理 成对类别有序logit libr…

贪吃蛇小游戏简单制作-C语言

文章目录 游戏背景介绍实现目标适合人群所需技术浅玩Window API什么是API控制台程序窗口大小,名称设置 Handle(句柄)获取句柄 坐标结构体设置光标位置 光标属性获取光标属性设置光标属性 按键信息获取 贪吃蛇游戏设计游戏前的初始化设置窗口的大小和名称本地化设置 宽字符Waht …

MCK主机加固:智能科技,构筑网络安全的铜墙铁壁

在数字化转型的浪潮中,企业服务器的安全已成为维护业务连续性和保护数据资产的关键。MCK主机加固产品,以其创新技术,为企业提供了一个全面、智能、高效的安全解决方案。 一、智能安全监测 MCK主机加固产品采用深度学习算法,能够…

Pixi.js学习 (四)鼠标跟随、元素组合与图片位控

目录 一、鼠标移动跟随 1.1 获取鼠标坐标 1.2 鼠标跟随 二、锚点、元素组合 2.1 锚点 2.2 元素组合 三、图片图层 四、实战 例题一:完成合金弹头人物交互 例题二:反恐重击瞄准和弹痕 例题一代码: 例题二代码: 总结 前言 为了提高作…

利用flask + pymysql监测数据同步中的数据是否完整

一、背景 最近项目搞重构,将原有的系统拆分成了多个子系统。但是有数据表需要在不同系统中数据,同时为了解决项目性能最了一个很简单的方案,就是公共数据存在每个系统之中。 二、分析 分析这些表,这些表相比源数据表,表…

ArrayList和LinkedList的区别!!!

总结: 1、数据结构的实现 ArrayList:动态数组。 LinkedList:双向链表。 2、时间复杂度不同 ArrayList:O(1) LinkedList: O(n) ①:随机访问---- ArrayList > LinkedList (ArrayList采用下标&#xff0…

<<虾皮shopee来赞达lazada>>商品详情API@各区域item~get

数据采集API接口——搭建电商数据采集系统 可采集30多个电商平台数据,采集字段高达40多个,包含标题、价格、图片等; 可采集单个SKU某个时间段的全数据; 采集数据准确率高达98%。 虾皮shopee电商数据(来赞达lazada同理&…

一个数据查询导出工具

数据查询导出工具 安装说明 安装完成后在桌面会创建“数据查询导出工具”的查询工具。 程序初始化 配置数据库连接 首次运行,请先配置数据库连接 点击“数据库连接”后,会出现下面的窗体,要求输入维护工程师密码。(维护工程师密码…

Android帧绘制流程深度解析 (一)

Android帧绘制技术有很多基础的知识,比如多buffer、vsync信号作用等基础知识点很多笔记讲的已经很详细了,我也不必再去总结,所以此处不再过多赘述安卓帧绘制技术,基础知识这篇文章总结的很好,一文读懂"系列&#…

7.数据集处理库Hugging Face Datasets

数据集处理库Hugging Face Datasets Datasets 首先解决数据来源问题 使用 Datasets 下载开源数据集 Datasets.load_dataset 实现原理简介 构造 DatasetBuilder 类的主要配置 BuilderConfig 如果您想向数据集添加额外的属性,例如类别标签。有两种方法来填充BuilderConfig类或其…

web刷题记录(5)

[羊城杯 2020]easycon 进来以后就是一个默认测试页面, 在这种默认界面里,我觉得一般不会有什么注入点之类的,所以这里先选择用御剑扫扫目录看看有没有什么存在关键信息的页面 扫了一半发现,很多都是和index.php文件有关&#xff0…

【docker】adoptopenjdk/openjdk8-openj9:alpine-slim了解

adoptopenjdk/openjdk8-openj9:alpine-slim 是一个 Docker 镜像的标签,它指的是一个特定的软件包,用于在容器化环境中运行 Java 应用程序。 镜像相关的网站和资源: AdoptOpenJDK 官方网站 - AdoptOpenJDK 这是 AdoptOpenJDK 项目的官方网站&…

柯桥成人外语培训|职场商务英语剑桥国际英语口语外贸商务英语

01 “puppy love”是什么意思? 大家都知道,puppy有“幼犬,小狗”的意思,love是“爱”,那puppy love是什么意思呢?可不是字面上表达的小狗的爱哦! 其实,"puppy love"真正的…

小巧精悍的电脑磁盘分析工具,程序大小仅830KB,支持汉化。

一、简介 1、一款小巧精悍的电脑磁盘分析工具,程序大小仅830KB,支持汉化;当你启动它,指定要分析的系统盘,它会自动将文件和文件夹按照所占用空间大小从小到大可视化显示。各个文件会以大小不同的块展示出来&#xff0c…