shell 管理系统

成绩管理:
#!/bin/bash 
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

#! /bin/bash
 
#查询函数
search()
{
  clear
  echo -e "Please enter name >>>\c"
  read NAME
  #如果记录为空
  if [ ! -f ./record ];then
    echo "you must have some scores before you can search!"
    sleep 2
    clear
    return
  fi
  #没有输入名字进行查询
  if [ -z "$NAME" ];then
    echo "you didn't enter a name!"
    echo -e "Please enter name >>>\c"
    read NAME
  fi
 
  grep -i "$NAME" ./record 2> /dev/null
 
  case "$?" in
   1) echo "Name not in record."
    ;;
   2) echo "you didnt eter a name to search";
    sleep 2;
    search;;
  esac
}
 
#增加信息
add()
{
  clear
  echo "Enter name and score of a record"
  echo -e "\c"
  if [ ! -f ./record ];then
    touch record
  fi
 
  read NEWNAME
  #关于输出重定向,>代表覆盖式的写入 ,>>代表添加式的写入
  echo "$NEWNAME" >>./record
 
  sort -o ./record ./record
}
 
#删除学生信息
delete()
{
  clear
  echo -e "Please enter delete name"
  read NAME
 
  if [ ! -f ./record ];then
   echo "this name is not in record"
  else
   cp record record.bak
   rm -f record
   grep -v "$NAME" ./record.bak > record
   rm -f record.bak
   fi
}
 
#显示所有的记录函数
display()
{
  more ./record
}
 
#利用vim编辑器编辑函数
edit()
{
 vim ./record
}
 
#屏幕帮助操作
help()
{
 clear
 echo "this is a student record program by unix shell language!"
}
 
#推出程序
quit()
{
 clear
 exit
}
 
clear
while true
do
  echo "*********************************************"
  echo "****   student record menu  ****"
  echo "*********************************************"
  echo "---------------------------------------------"
  echo "#############################################"
  echo "    1-search a record    "
  echo "    2-add a record     "
  echo "    3-delete a record    "
  echo "    4-dispaly all records   "
  echo "    5-edit record with vim   "
  echo "    H-help       "
  echo "    Q-exit       "
  echo "#############################################"
  echo -e -n "Please enter your choice [1,2,3,4,5,6,H,Q]:\c"
  read CHOICE
 
  case $CHOICE in
  1) search;;
  2) add; clear;;
  3) delete; clear;;
  4) display;;
  5) edit; clear;;
  H|h) help;;
  Q|q) quit;;
  *) echo "Invailid choice!";
  sleep 2;
  clear;;
  esac
 done



猜你喜欢

转载自blog.csdn.net/liudongdong19/article/details/80260601