#!/bin/bash
#总结:
#1.在使用颜色上面,调用变量会让代码更加清晰直观.
#2.echo -e \033[是启用
#3.清屏命令:$clear
#4.if中的判断选项-n/-z/-f/-d/-e,是写在判断对象前面的,如:[ -f file ]
#5.awk -F. ‘
2
/
B
e
2~/^Be
2 /Be/{print}’ record 严格匹配
#awk -F. ‘$2~/Be/{print}’ record 宽松匹配
#6.函数的语法:
#定义:函数名(){} 或者 function 函数名{}
#调用:函数名 <参数1> <参数2> …
######################## Variables ################################
RED='\033[41m' #红色底
YELLOW='\033[33m' #黄色字体
GREEN='\033[32m'
BLUE='\033[34m' #蓝色字体
RES='\033[0m' #清除颜色
file=$(find / -name "record" 2> /dev/null ) #搜索record文件
######################## Function ##################################
#提示NO record的函数
nr(){
if [ -z ${file} ];then
echo "No file named record!"
sleep 3
continue
fi
}
######################## Tables ##################################
while :
clear
echo -e "${YELLOW}${RED}############################################
# 1:search a record #
# 2:add a record #
# 3:delete a recore #
# 4:display all recored #
# 5:edit record with vi #
# H:help screen #
# Q:exit program #
############################################
${RES}"
do
echo -e "${GREEN}please enter your choice [ 1 2 3 4 5 H Q ]: ${RES}"
read -p "" num
######################## Select ##################################
case ${num} in
#search a record
"1")
clear
nr
while :
do
read -p " please enter name | enter 'quit' back to menu >>> " name
clear
if [ -z ${name} ];then
echo "you didn't enter a name" #没有输入
sleep 1
break
elif [ ${name} == "quit" ];then
break
else #有输入
a=$(awk -F. '$2~/^'${name}'$/{print}' ${file} | wc -l)
awk -F. '$2~/^'${name}'$/{print}' ${file}
if [ $a -eq 0 ];then #输入不存在
echo "you must have some scores before you can search!"
else #输入存在
sleep 3
break
fi
fi
done;;
#add a record
"2")
clear
echo -e "${GREEN}enter name and score of a record : ${RES}"
read -p "" v2
if [ -n $v2 ];then #有输入(有可能打乱原有格式)
echo $v2 >> ${file}
echo "added $v2 in record"
else #没有输入
echo "you didn't enter any value"
echo "please enter name and score:"
read -p "" v2
sleep 3
continue
fi;;
#delete a record
"3")
clear
nr
echo "no operation request"
continue;;
#display record
"4")
nr
cat ${file}
sleep 3
clear;;
#edit record with vi
"5")
nr
vi ${file}
continue;;
#help screen
"H")
echo -e "${BLUE}This is a student's record manager program ${RES}"
sleep 3
continue;;
#exit program
"Q")
break
;;
*)
echo "please enter valid mode"
sleep
continue;;
esac
done