1、脚本包含两个模块,脚本主体模块和功能模块。 2、功能模块 1)成绩上传函数add(){}:利用read命令读取上传的科目和成绩; case语句用来判断选择哪个科目,然后使用追加重定向将成绩存入文件info 2)成绩查询函数search(){}:直接打开存放成绩的文件info 3、脚本主体部分,包含以下内容: 1)使用while循环重复执行脚本主体内容; 2)输出成绩管理系统界面和选择的界面,1、成绩上传 2、成绩查询 3、退出; 3)要求使用case匹配对应的功能模块;选择1,调用成绩上传函数;选择2,调用成绩查询函数;选择3,退出shell;选择其他,提示输入错误;
时间: 2023-07-16 22:15:14 浏览: 23
好的,下面是一个实现你所描述功能的示例脚本:
```bash
#!/bin/bash
# 定义存放成绩的文件路径
file_path="./info"
# 定义函数:成绩上传
add() {
# 读取科目和成绩
echo "请输入科目:"
read subject
echo "请输入成绩:"
read score
# 判断科目并将成绩追加到文件中
case $subject in
"语文")
echo "$score" >> $file_path
echo "语文成绩上传成功!"
;;
"数学")
echo "$score" >> $file_path
echo "数学成绩上传成功!"
;;
"英语")
echo "$score" >> $file_path
echo "英语成绩上传成功!"
;;
*)
echo "科目输入错误!"
;;
esac
}
# 定义函数:成绩查询
search() {
# 判断文件是否存在
if [ ! -f $file_path ]; then
echo "成绩文件不存在!"
return
fi
# 输出成绩列表
echo "科目 成绩"
echo "--------"
cat $file_path
}
# 输出成绩管理系统界面
echo "欢迎使用成绩管理系统!"
while true; do
# 输出选择界面
echo "请选择功能:"
echo "1. 成绩上传"
echo "2. 成绩查询"
echo "3. 退出"
# 读取用户选择
read choice
# 判断用户选择并调用对应的函数
case $choice in
1)
add
;;
2)
search
;;
3)
echo "谢谢使用成绩管理系统!"
exit 0
;;
*)
echo "输入错误,请重新选择!"
;;
esac
done
```
上述脚本中,`add()`函数用来读取用户输入的科目和成绩,并使用`case`语句判断科目,然后将成绩追加到文件`info`中。`search()`函数用来查询成绩文件中的所有成绩并输出。脚本主体部分使用`while`循环,重复输出选择界面并读取用户输入,然后调用对应的函数。如果用户选择退出,则使用`exit`命令退出脚本。