Linux,shell脚本编程-图书管理系统

该博客介绍了如何使用Linux shell脚本创建一个简单的图书管理系统,包括数据库准备、菜单驱动的用户交互,如展示图书、查找、添加、编辑、借书、还书和删除等功能。在终端中运行脚本即可体验图书管理的各个操作。
摘要由CSDN通过智能技术生成

准备的数据库

在这里插入图片描述

代码块

前期准备

#!/bin/bash

#personal library managerment system

app_name='{0##*[\\/]}'
app_version="1.0"
bookdb=${
   1:-"books.db"}

sysName="personal library managerment system"
sysVersion="Version:$app_version"
sysAuthor="${User}S20-HOULIN"
sysDate=$(date +%F)

Red=1
Green=2
Brown=3
Blue=4
Magenta=5
Cyan=6
White=7
colors=($Red $Green $Grown $blue $Magenta $Cyan $White)

Width=$(tput cols)
Height=$(tput lines)

bold=$(tput bold)
rev=$(tput rev)
normal=$(tput sgr0)

center(){
   
	tput cup $1 $(((Width-${
   #2})/2))
}
centerMessage(){
   
	tput cup $1 $(((Width-$2)/2))
}
bold(){
   
	echo -n ${
   bold}"$1"${
   normal}
}

color(){
   
	echo -ne "\e[3${1}m${2}\e[0m"
}

boldColor(){
   
	echo -ne "${bold}\e[3${1}m${2}\e[0m"
}

error(){
   
	errTip='Wrong Input! Press any key to retry...'
	center 26 "$errTip"; color $Red "$errTip"
	read -n1 -s key
}

进入页面

showFlash(){
   
	tput clear
	center 10 "$sysName"; boldColor $Brown "$sysName";
	center 12 "$sysVersion"; echo -n "$sysVersion";
	center 14 "$sysAuthor"; color $Green "$sysAuthor";
	center 16 "$sysDate"; echo -n "$sysDate";
	message="Press ENTER to continue..."
	center 20 "$message"; color $Cyan "$message"
	read -n1 key
}

主菜单

showMain(){
   
	error=0
	while :; do
		if [[ $error -eq 0 ]];then
			tput clear
			center 6 "Main Menu"; boldColor $Brown "Main Menu";
			centerMessage 8 30;  bold "1:                  Show books"
			centerMessage 10 30; bold "2:                  Find books"
			centerMessage 12 30; bold "3:                   Add books"
			centerMessage 14 30; bold "4:   Edit information of books"
			centerMessage 16 30; bold "5:             Check out books"
			centerMessage 18 30; bold "6:              Check in books"
			centerMessage 20 30; bold "7:                Delete books"
			centerMessage 22 30; bold "q:                        Exit"
			message='Please inter your choice(1-7 or q):'
			inputCol=$(((Width-${
   #message})/2+${#message}))
			center 24 "$message"; color $Cyan "$message"
		fi
		read choice
		case $choice in
			1)		showBooks;	error=0;;
			2)		findBooks;	error=0;;
			3)		addBooks;	error=0;;
			4)		editBooks;	error=0;;
			5)		checkOut;	error=0;;
			6)		checkIn;	error=0;;
			7)		deleteBooks;error=0;;
			[qQ]*)	tput clear;exit 0;;
			*)		error $((infoHeight+2))
					tput cup $((infoHeight)) $inputCol
					tput ed;	error=1;;
		esac
	done
}

展示图书

showBooks(){
   
	error=0
	while :; do
		if [ $error -eq 0 ];then
			tput clear
			center 6 "Show books"; boldColor $Brown "Show books"
			centerMessage 8 30;  bold "1:show books that not borrowed"
			centerMessage 10 30; bold "2:    show books that borrowed"
			centerMessage 12 30; bold "3:              show all books"
			centerMessage 14 30; bold "q:                   Main Menu"
			message='enter your choice(1-3 or q):'
			inputCol=$(((Width-${
   #message})/2+${#message}))
			center 24 "$message";color $Cyan "$message"
		fi
		read choice
		case $choice in
			1)		showBook 1;;
			2)		showBook 2;;
			3)		showBook 3;;
			[qQ]
  • 22
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
可以使用Shell脚本编写一个简单的图书管理系统。以下是一个基本的设计: 1. 书籍数据存储:使用文本文件来存储书籍的信息。每一本书可以被保存为一行,其中包括书名、作者、出版日期、出版社、ISBN号等信息。每本书的信息可以使用逗号分隔,例如: ``` Linux Shell脚本编程,Chris F.A. Johnson,2007,人民邮电出版社,9787115225109 ``` 2. 添加书籍:当用户选择添加新书时,程序会要求用户输入书籍信息,并将其保存到文本文件中。 3. 删除书籍:当用户选择删除一本书时,程序会要求用户输入要删除的书籍的ISBN号,并查找文本文件中的该书籍并将其删除。 4. 显示书籍列表:当用户选择显示书籍列表时,程序会读取文本文件中的所有书籍信息,并在屏幕上显示出来。 5. 搜索书籍:当用户选择搜索书籍时,程序会要求用户输入一个搜索关键字,例如书名、作者或ISBN号,然后遍历文本文件中的所有书籍信息以查找匹配的书籍,并将它们显示在屏幕上。 可以使用Shell脚本编写以上功能,以下是一个简单的示例代码: ``` #!/bin/bash BOOK_FILE="books.txt" function add_book { echo "请输入书籍信息:" read -p "书名: " title read -p "作者: " author read -p "出版日期: " date read -p "出版社: " publisher read -p "ISBN号: " isbn echo "${title},${author},${date},${publisher},${isbn}" >> $BOOK_FILE echo "书籍添加成功!" } function delete_book { read -p "请输入要删除的书籍的ISBN号: " isbn if grep -q "$isbn" $BOOK_FILE; then sed -i "/$isbn/d" $BOOK_FILE echo "书籍删除成功!" else echo "找不到要删除的书籍!" fi } function list_books { echo "书名,作者,出版日期,出版社,ISBN号" echo "------------------------------------" cat $BOOK_FILE } function search_books { read -p "请输入搜索关键字: " keyword echo "搜索结果:" echo "书名,作者,出版日期,出版社,ISBN号" echo "------------------------------------" grep -i "$keyword" $BOOK_FILE } while true; do echo "请选择要进行的操作:" echo "1. 添加书籍" echo "2. 删除书籍" echo "3. 显示书籍列表" echo "4. 搜索书籍" echo "5. 退出" read -p "请选择操作 [1-5]: " choice case $choice in 1) add_book ;; 2) delete_book ;; 3) list_books ;; 4) search_books ;; 5) exit ;; *) echo "无效的选择!" ;; esac done ``` 在上述代码中,`BOOK_FILE` 变量指定存储书籍信息的文本文件的路径。`add_book` 函数用于添加一本新书,其中用户需要输入书籍的各种信息,并将其保存到文本文件中。`delete_book` 函数用于删除一本书籍,其中用户需要输入要删除的书籍的ISBN号,并在文本文件中查找该书籍并将其删除。`list_books` 函数用于显示所有书籍的列表。`search_books` 函数用于搜索与给定关键字匹配的书籍,并将它们显示在屏幕上。程序使用无限循环来等待用户的输入,直到用户选择退出。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值