linux操作系统课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统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"

}

################################################################# ####

# Usage for parameter '-d'

usage2()

{

echo "The parameter '-d' need a value: STDID"

echo "e.g. student.sh -d 001"

}

################################################################# ####

# Usage for parameter '-s'

usage3()

{

echo "The parameter '-s' need a value: STDID"

echo "e.g. student.sh -s 001"

}

################################################################# ####

# Show information of all student

# Without parameter

showalldata()

{

echo "========================================="

echo " Welcom to Student Shell"

echo "========================================="

echo "NO STDID NAME SEX MAJOR"

awk -F: '{OFS="\t"}{print NR,$1,$2,$3,$4;}' $FILENAME

# Another way to print data of file

# for student in `cat $FILENAME`

# do

# echo -e ${student//:/"\t"}

# done

}

################################################################# ####

# Search a given STDID

# If find it , return 0, or return 1

# With parameter: STDID

findstd()

{

local tno=`awk -F: '$1 ~ /'$1'/ {print $1}' $FILENAME`

if [ -z "$tno" ]; then

return 1

else

return 0

fi

相关文档
最新文档