当前位置: 首页 > news >正文

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

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

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

应用展示:

相关文章:

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

该电话本可以实现以下功能 1.添加用户 2.查询用户 3.删除用户 4.展示用户 5.退出 代码展示: #!/bin/bash PHONEBOOKphonebook.txt function add_contact() { echo "Adding new contact..." read -p "Enter name: " name …...

蓝牙开发 基础知识

零、基础知识 0.1、Android 应用可通过 Bluetooth API 执行以下操作 扫描其他蓝牙设备查询本地蓝牙适配器的配对蓝牙设备建立 RFCOMM 通道通过服务发现连接到其他设备与其他设备进行双向数据传输管理多个连接 0.2、蓝牙进行通信的四大必需任务 设置蓝牙查找局部区域内的配对…...

QNX 7.0.0开发总结

1 QNX编译 1.1 基本概念 QNX可以直接使用Linux Makefile编译库和二进制,在Makefile文件中指定CCaarch64-unknown-nto-qnx7.0.0-g,或者CCx86_64-pc-nto-qnx7.0.0-g,保存退出后,运行source /qnx_sdk_path/qnxsdp-env.sh,…...

Golang使用讯飞星火AI接口

一、API申请 https://www.bilibili.com/video/BV1Yw411m7Rs/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 注册申请,需要在此页面获取appid、apisecret、apikey https://www.xfyun.cn/ https://console.xfyun.cn/ser…...

矫正儿童发音好帮手

《言语构音语音训练手册——下颌、唇部、舌部构音运动障碍》教辅书 儿童言语构音语音问题越来越受到家长的关注,大多数家长受到儿童说话晚、口齿不清、发音错误等问题的困扰,国外报道2岁儿童言语构音语音障碍达到17%,3岁达4%~7.5%&#xff0…...

wordpress主题导航主题v4.16.2哈哈版

1.下载授权接口源码onenav-auth-api-v2.zip ,在宝塔新建一个网站,域名为 auth.iotheme.cn,设置wordpress伪静态,申请ssl证书。将上面源码解压后上传到此网站根目录。 2. 在宝塔根目录etc下 hosts 中添加 127.0.0.1 auth.iotheme.…...

内存分布图

1.基本数据类型和常量存放在常量池中。 2.类的成员存放在堆中,如果成员是其他类对象也存放在堆中 3.数组和数组的内容放在堆中 4.类对象存放在栈中。 5.单独的对象存放在栈中。 6.引用数据类型存放在堆或栈中。 Java中对象到底存在堆中还是栈中_java对象在堆还…...

如何发布自己的NPM插件包?

安装 Node.js : 如果没有安装的,Nodejs下载安装:http://nodejs.cn/download/ 首先确保你已经安装了 Node.js 和 npm。你可以通过运行以下命令来检查是否已经安装: node -v npm -v初始化项目: 创建一个新的项目文件夹…...

计算广告读书杂记-待整理

不知不觉已经在字节干了两年多广告研发,也跳槽去了一家广告公司继续深耕,借着这个劲,重新读一遍《计算广告》这本书,并将一些重点概念进行记录。...

No module named _sqlite3解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

防飞单,赢市场:售楼处客流统计管理新篇章

在竞争激烈的房地产市场中,售楼处作为楼盘销售的重要窗口,其管理效率和服务质量直接关系到楼盘的销售业绩和品牌形象。然而,传统的客户人数统计方式往往存在诸多不足,如数据不准确、统计效率低下等,这些问题给售楼处的…...

LeetCode:419. 甲板上的战舰(遍历 Java)

目录 419. 甲板上的战舰 题目描述: 实现代码与解析: 遍历 原理思路: 419. 甲板上的战舰 题目描述: 给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 X 或者是一个空位 . &…...

【python】OpenCV—Blob Detection(11)

学习来自OpenCV基础(10)使用OpenCV进行Blob检测 文章目录 1、cv2.SimpleBlobDetector_create 中文文档2、默认 parameters3、配置 parameters附录——cv2.drawKeypoints 1、cv2.SimpleBlobDetector_create 中文文档 cv2.SimpleBlobDetector_create 是 O…...

【C++】 基础复习 | 数据类型,输入,输出流 scanf printf

文章目录 1 基本数据类型1.1 基本数据类型1.2 构造类型1.3 指针类型&#xff08;Pointers&#xff09; 2 基础输入输出2.1 通过输入输出操作符>> <<2.2 通过scanf和printf输入和输出2.2.1 输出printf 函数2.2.2 输出scanf 函数2.2.3 注意事项 1 基本数据类型 了解…...

linux pxe和无人值守

一 PXE和无人值守 pxe c/s模式 允许客户端通过网络从远程服务器&#xff08;服务端&#xff09;下载引导镜像 加载安装文件 实现自动化安装操作系统 无人值守 就是安装选项不需要认为干预 可以自动化实现 pxe的优点 1 规模化 同时装配多台服务器 20多 30台 2 自动化 …...

Questflow借助MongoDB Atlas以AI重新定义未来工作方式

MongoDB客户案例导读 Questflow借助MongoDB Atlas赋能AI员工&#xff0c;助力中小型初创企业自动化工作流程&#xff0c;简化数据分析&#xff0c;提升客户体验&#xff0c;推动AI与员工的协作&#xff0c;重新定义未来工作方式。 协作式AI自动化平台 无需编码即可拥有自己的…...

数值计算精度问题(浮点型和双整型累加精度测试)

这篇博客介绍双整型和浮点数累加精度问题,运动控制轨迹规划公式有大量对时间轴的周期累加过程,如果我们采用浮点数进行累加,势必会影响计算精度。速度的不同 进一步影响位置积分运算。轨迹规划相关问题请参考下面系列文章,这里不再赘述: 1、博途PLC 1200/1500PLC S型速度曲…...

算法训练营day56

题目1&#xff1a;300. 最长递增子序列 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int lengthOfLIS(vector<int>& nums) {// dp数组含义是第i个数的严格递增子序列的长度// 内层的递推公式就是 取 0 到 i - 1之间最大的dp数组 然后 1vector…...

基于STM32的智能水产养殖系统(二)

TPS5433IDR TPS5433IDR 是一款由德州仪器 (Texas Instruments) 生产的高效降压转换器&#xff08;Buck Converter&#xff09;。它能够将较高的输入电压转换为较低的输出电压&#xff0c;适用于各种电源管理应用。 主要特性 输入电压范围: 5.5V 至 36V输出电压范围: 0.9V 至 …...

[工具探索]富士mini90拍立得使用指南

文章目录 1. 基本功能介绍1.1 相机外观1.2 电池与胶片 2. 设置相机2.1 装入电池2.2 装入胶片 3. 拍摄模式3.1 标准模式3.2 儿童模式3.3 远景模式3.4 双重曝光模式3.5 Bulb&#xff08;B&#xff09;模式3.6 **派对模式**3.7 微距模式3.8 **亮度模式**3.9 **定时拍摄模式**3.10 …...

不精确计算:芯片设计中的功耗优化与精度权衡技术

1. 不精确计算&#xff1a;从学术概念到芯片设计的功耗革命在移动设备、物联网终端和边缘计算节点无处不在的今天&#xff0c;功耗已经取代了单纯的性能&#xff0c;成为许多芯片设计的首要约束。我们习惯了处理器以全精度、零误差的方式执行每一条指令&#xff0c;但你是否想过…...

FPGA设计避坑指南:从复位电路到跨时钟域,手把手教你搞定亚稳态

FPGA实战&#xff1a;亚稳态问题全解析与工程级解决方案 在FPGA开发中&#xff0c;亚稳态问题如同潜伏的幽灵&#xff0c;往往在系统最不稳定的时候显现&#xff0c;导致数据错误、系统崩溃等难以追踪的故障。本文将从一个真实的UART接收模块案例出发&#xff0c;深入剖析亚稳态…...

Pycharm更新骨架卡死C盘?罪魁祸首是torch-geometric的四个依赖库

PyCharm更新骨架卡死C盘&#xff1f;深入解析torch-geometric依赖库的存储陷阱 当你在PyCharm中启动一个包含torch-geometric的项目时&#xff0c;是否经历过C盘空间被神秘吞噬的噩梦&#xff1f;那个名为"Updating skeletons"的后台进程&#xff0c;本应是IDE的贴心…...

在Windows上优雅运行Android应用:APK Installer的零门槛解决方案

在Windows上优雅运行Android应用&#xff1a;APK Installer的零门槛解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾为无法在Windows电脑上使用某个心…...

GD32F407时钟树详解:168MHz系统时钟如何驱动你的ADC、SPI和CAN?

GD32F407时钟树深度解析&#xff1a;从PLL到外设的168MHz信号之旅 在嵌入式系统设计中&#xff0c;时钟如同芯片的"心跳"&#xff0c;精确控制着每个外设的运作节奏。GD32F407这颗基于Cortex-M4内核的MCU&#xff0c;其168MHz的系统时钟如何精准分配到ADC、SPI、CAN等…...

Taotoken账单详情页功能体验,让每一分Token消耗都清晰可溯

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken账单详情页功能体验&#xff0c;让每一分Token消耗都清晰可溯 对于任何将大模型API集成到产品开发或日常工作中的团队与个…...

从Hello-World到Nginx:5个真实案例详解如何让Docker容器在后台稳定运行

从Hello-World到Nginx&#xff1a;5个真实案例详解如何让Docker容器在后台稳定运行 当你在终端输入docker run后&#xff0c;容器却像一阵风一样消失无踪——这种"闪退"现象往往是Docker新手遭遇的第一个认知颠覆点。不同于传统虚拟机&#xff0c;容器本质上是隔离的…...

Windows平台iOS模拟器开发革命:ipasim如何让iOS应用在Windows上“原生“运行

Windows平台iOS模拟器开发革命&#xff1a;ipasim如何让iOS应用在Windows上"原生"运行 【免费下载链接】ipasim iOS emulator for Windows 项目地址: https://gitcode.com/gh_mirrors/ip/ipasim 嘿&#xff0c;开发者朋友们&#xff01;你是否曾经梦想过在Win…...

NotebookLM播客化功能上线即爆火(2024Q2内部灰度测试TOP3功能首次公开)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM文档播客化功能详解 NotebookLM 的文档播客化&#xff08;Doc-to-Podcast&#xff09;功能将静态文本内容智能转化为自然流畅的语音叙述&#xff0c;支持多角色配音、语速调节与上下文感知停…...

【译】《心悟内核:先懂设计,再读代码》—1、内核并非进程,而是整个系统本身

作者&#xff1a;Moon Hee Lee 原文&#xff1a; The Kernel in the Mind 心悟内核:先懂设计&#xff0c;再读代码——内核并非进程&#xff0c;而是整个系统本身Linux 内核既不是普通进程、守护进程&#xff0c;也不是应用程序。它是一套常驻内存的高特权运行环境&#xff0c…...