linux操作系统课程设计报告
操作系统II(实践)期末作业
(Linux Shell 程序设计)
学院:
专业:
班级:
学号:
姓名:
2011年6月3日
所用仪器、材料。
PC一台
Redhat linux 5.5
二、实验内容:
有文本文件student.txt,该文件是所有学生的信息,每个学生存储一行信息,信息格式如下
学号:姓名:性别:专业 如(101:张三:男:计算机)
设计一个shell,名称为student.sh,该shell完成如下功能:
1) 当输入 student.sh -a 101:张三:男:计算机 时,首先判断101记录是否存在,如果不存在,则把该信息写入文件,如果存在,则给出提示,并输出文件中学号为101的该行信息
2) 当输入 student.sh -d 101 时,首先判断101记录是否存在,如果不存在,给出提示,如果存在,则提示用户确认是否要删除记录,如用户输入y或者yes,则删除文件中学号为101的该行信息,如果用户输入n或no时,则不做删除操作
3) 当输入 student.sh -s 101 时,首先判断101记录是否存在,如果不存在,给出提示,如果存在,则输出文件中学号为101的该行信息
4) 当输入 student.sh时,输出文件的全部内容
5) 当用户输入的选项不正确时,给出错误提示,并输入该shell的用法,如(student.sh -q 123456)
三、实验代码:
#!/bin/bash
#student.sh
# Define the 'FILENAME'
declare FILENAME="student.txt"
#####################################################################
# Usage of this shell
usage()
{
echo "Usage: student.sh [OPTION] [STDID:NAME:SEX:MAJOR|STDID]"
echo "Notice:"
echo " This shell program need to create a file \"student.txt\""
echo "in current directory. If it does not exist, the shell will"
echo "create it."
echo ""
echo "[OPTION]"
echo " without parameter, shell will show all data of student."
echo " -a, --add a student"
echo " -d, --delete a student"
echo " -s, --search a student"
echo ""
echo " STDID: must be 3 numbers, for example: 001."
echo " NAME: must be consist of letters at least one."
echo " SEX: must be one value of following: F, f, M, m."
echo " MAJOR: limit is the same with NAME."
echo ""
echo " Example:"
echo " Add a student named Tom, his STDID is 002, major is Math."
echo " e.g. student.sh -a 002:Tom:M:Math"
echo " Delete the student STDID is 002."
echo " e.g. student.sh -d 002"
echo " Search the student STDID is 002."
echo " e.g. student.sh -s 002"
}
#####################################################################
# Usage for parameter '-a'
usage1()
{
echo "The parameter '-a' need a value: STDID:NAME:SEX:MAJOR"
echo "e.g. student.sh -a 002:Tom:M:Math"
}