Linux实验报告六.doc
文本预览下载声明
西南科技大学计算机学院
实验报告
实 验 名 称: Shell 程序分析
实 验 地 点:
实 验 日 期:
指 导 教 师:
学 生 班 级:
学 生 姓 名:
学 生 学 号:
提 交 日 期:2012/11/10
2007 年8 月信息安全教研室制
实验目的
掌握 Shell 程序的语法和程序结构,以及修改、调试的方法。
实验题目
本次实验分成两个部分:一是分析所给出的Shell 程序段的程序结构;二是修改和运行所给出的Shell 程序,掌握Shell 程序查错、运行方法。通过本次实验,为下次实验——设计Shell 程序——打下基础。
实验设计
将提供的示例代码载入运行,查看结果并理解代码的指令意义
实验记录
程序代码(1)
#!/bin/bash
IS_someone=`who | grep $1`
while [ -z $IS_someone ]
do
sleep 3
IS_someone=`who | grep $1`
done
echo watch it,$1 is online! | wall
程序流程图
假 真
程序代码(2)
#!/bin/bash
TDIR=${HOME:-}/.tmpdirs
MYHOST=`hostname`
STATEFUL=YES
THIS_USER=`id -un`
[ $TDIR = //.tmpdirs ] TDIR=/.tmpdirs
[ ${HOME:-} = ] STATEFUL=NO
[ \( ! -z ${TDIR} \) -a -f ${TDIR}/${MYHOST} -a ${STATEFUL} = YES ] w=1
if [ $w -eq 1 ]; then
TRYDIR=`cat ${TDIR}/${MYHOST}`
fi
unset w
if [ -z ${TRYDIR} ]; then
TRYDIR=/tmp/${THIS_USER:-}-tmp.${RANDAM}
(mkdir -m 0700 ${TRYDIR} mkdir -m 0700 ${TRYDIR}/files) 2/dev/null
fi
TMP=${TRYDIR}
TMPDIR=${TRYDIR}
export TMP
export TMPDIR
[ \( ! -z ${TDIR} \) -a \( -d ${TDIR} \) -a \( ! -z ${MYHOST} \) -a ${STATEFUL} = YES ]
w=1
if [ $w -eq 1 ]; then
echo ${TMPDIR} ${TDIR}/${MYHOST}
fi
unset w
unset MYHOST
unset TDIR
unset THIS_USER
unset STATEFUL
程序流程图
实验思考或体会
体会
本次试验主要考查了对shell编程的理解,以及对代码指令的认识,感觉已经很久看过代码了,有些吃力,但对我以后的学习很有帮助。
思考题
Shell 脚本中的程序段有错误,但该程序段在运行中没有被执行,问错误能否被表现出来?
不能,没被执行就不会被检错。
总结查错Shell 脚本的基本方法和过程。
Shell脚本编写后运行之后就会自动检测语法错误,并显示出第几行出错,之后可自行更改。
程序开始
登入用户名中是否有指定字符
继续查找,循环
显示设定的字符
程序结束
显示全部