当前位置: 首页 > 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

应用展示:

http://www.lryc.cn/news/369866.html

相关文章:

  • 蓝牙开发 基础知识
  • QNX 7.0.0开发总结
  • Golang使用讯飞星火AI接口
  • 矫正儿童发音好帮手
  • wordpress主题导航主题v4.16.2哈哈版
  • 内存分布图
  • 如何发布自己的NPM插件包?
  • 计算广告读书杂记-待整理
  • No module named _sqlite3解决方案
  • 防飞单,赢市场:售楼处客流统计管理新篇章
  • LeetCode:419. 甲板上的战舰(遍历 Java)
  • 【python】OpenCV—Blob Detection(11)
  • 【C++】 基础复习 | 数据类型,输入,输出流 scanf printf
  • linux pxe和无人值守
  • Questflow借助MongoDB Atlas以AI重新定义未来工作方式
  • 数值计算精度问题(浮点型和双整型累加精度测试)
  • 算法训练营day56
  • 基于STM32的智能水产养殖系统(二)
  • [工具探索]富士mini90拍立得使用指南
  • VMware导入小白分享的MacOS版本之后,无法开机的解决方案
  • 【CSAPP导读】导论
  • “新E代弯道王”MAZDA EZ-6亮相2024重庆国际车展
  • 【lesson11】客户端backUp类的实现
  • 数据结构--关键路径
  • SSTI注入漏洞
  • Day11 - Day15
  • 启航信息学奥林匹克:青少年NOI学习路线与策略指南
  • 易舟云财务软件:数字化时代的财务管家
  • catia零件装配中通过指南针移动零件
  • 如何使用免费的 Instant Data Scraper快速抓取网页数据