shell脚本语言实现简单的图书管理系统

待兔
• 阅读 1411
#!/bin/bash
#author:zhanghongjun
#version:1.0
#date:2011年 12月 14日 星期三 21:18:18 CST


function information
{
    echo "---------------------------"
    echo "国家图书馆管理系统(5.4版本)"
    echo
    echo -n "| " ;echo "1:添加图书"
    echo -n "| " ;echo "2:删除图书"
    echo -n "| " ;echo "3:图书列表"
    echo -n "| " ;echo "4:查找图书"
    echo -n "| " ;echo "5|q:退出系统"
    echo
    echo "---------------------------"
    read -p "请输入你的选择:" a


    case "$a" in
    1)
        add ;;
    2)
        delete ;;
    3)
        list ;;
    4)
        search;;
    5|q|Q)
        return -1 ;;
    *)
        information ;;
    esac
}


function file_exist
{
    if [ ! -f .book.txt ];then
        touch .book.txt
    fi
}


function add
{
    read -p "请输入图书的编号:" number
    read -p "请输入图书的书名:" book_name
    read -p "请输入图书的作者:" author
    read -p "请输入图书的价格:" price 
        echo -e "$number\t$book_name\t$author\t$price" >>.book.txt && {
            echo "添加图书成功!"
            echo "-------------------"
        }
    if [ $? -ne 0 ];then
        echo "添加图书失败"
    fi
    information

}

function delete
{
    read -p "请输入要删除的图书的编号:" number
    grep $number .book.txt &>/dev/null && {
            sed -i '/\<'$number'\>/d' .book.txt &>/dev/null  &&
            echo "删除图书成功"
    echo "-------------------------"
    }

    if [ $? -ne 0 ];then
        echo "删除图书失败"
        echo "你要删除的图书不存在"
    fi
    information
}

#列出所有图书的信息
function list
{
    echo -e "编号\t书名\t作者\t价格"
    cat .book.txt
    echo "----------------------------"
    information

}


#下面的函数用到的查询菜单
function search_menu
{
    echo;echo "----------------------------"
    echo -n "|";echo -e "1:\t按图书编号查询"
    echo -n "|";echo -e "2:\t按图书书名查询"
    echo -n "|";echo -e "3:\t按图书作者查询"
    echo -n "|";echo -e "4:\t按图书价格查询"
    echo -n "|";echo -e "5|q:\t退出查询系统"
    echo;echo "----------------------------"

}
function search
{
    search_menu
    read -p "请输出你的选择:" myselect
    case "$myselect" in
    1)
        read -p "请输入要查询的图书的编号:" mynumber
        echo -e "编号\t书名\t作者\t价格\n"
        awk '$1=='$mynumber'{print $0}' .book.txt 2>/dev/null

        if [ $? -ne 0 ];then
            echo "图书不存在"
        fi
        search
        ;;
    2)
        read -p "请输入你要查询的书名:" mybook_name
        echo -e "编号\t书名\t作者\t价格\n"
        awk '$2~/'$mybook_name'/{print $0}' .book.txt 2>/dev/null
        if [ $? -ne 0 ];then
            echo "图书不存在"
        fi
        search
        ;;
    3)
        read -p "请输入图书的作者:" myauthor
        echo -e "编号\t书名\t作者\t价格\n"
        awk '$3~/'$myauthor'/{;print $0}' .book.txt 2>/dev/null
        if [ $? -ne 0 ];then
            echo "图书不存在"
        fi
        search
        ;;
    4)
        read -p "请输入图书的价格:" myprice
        echo -e "编号\t书名\t作者\t价格\n"
        awk '$4=='$myprice'{print $0}' .book.txt 2>/dev/null
        if [ $? -ne 0 ];then
            echo "图书不存在"
        fi
        search
        ;;
    5)
        information
        ;;
    *)
        information
        ;;
    esac

}

information
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Linux运维常见面试题之精华收录
Linux运维常见面试题之精华收录1、什么是运维?什么是游戏运维?1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术运维又包括很多种,有DBA运维、网站运维、虚
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
待兔
待兔
Lv1
男 · helloworld公司 · CTO - helloworld开发者社区站长
helloworld开发者社区网站站长
文章
89
粉丝
43
获赞
75