实验3Shell程序设计.docx

上传人:b****5 文档编号:6366268 上传时间:2023-01-05 格式:DOCX 页数:7 大小:16.70KB
下载 相关 举报
实验3Shell程序设计.docx_第1页
第1页 / 共7页
实验3Shell程序设计.docx_第2页
第2页 / 共7页
实验3Shell程序设计.docx_第3页
第3页 / 共7页
实验3Shell程序设计.docx_第4页
第4页 / 共7页
实验3Shell程序设计.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

实验3Shell程序设计.docx

《实验3Shell程序设计.docx》由会员分享,可在线阅读,更多相关《实验3Shell程序设计.docx(7页珍藏版)》请在冰豆网上搜索。

实验3Shell程序设计.docx

实验3Shell程序设计

实验报告3

课程名称:

Linux驱动程序开发实验名称:

Shell程序设计

学生姓名:

班级:

学号:

指导老师:

钱振江成绩:

一、实验目的

1.Shell程序设计中变量的使用;

2.理解通道的概念并初步掌握它的使用方法;

3.掌握算术操作、字符串操作、逻辑操作、文件操作;

4.掌握ifthenfi、iftheneliffi、case、while、for等控制语句;

5.在shell脚本中使用函数;

二、实验任务与要求

1.通过对shell程序的调试,理解变量$#,$0,$1,$2,$3,$@的含义;

2.Shell顺序程序设计;

3.Shell分支程序与多分支程序设计;

4.Shell循环程序设计。

三、实验工具与准备

计算机PC机,LinuxUbuntu操作系统

预备知识

1.环境变量:

$HOME;$PATH;$PS1;$1~$9;$*;$@;$#;$$;$?

;$!

等。

$0是一个内部变量,它是必须的,而$1则可有可无,最常用的内部变量有$0、$#、$?

、$*,它们的含义如下:

❑$0:

命令所在的路径

❑$#:

传递给程序的总的参数数目

❑$?

shell程序在shell中退出的情况,正常退出返回0,反之为非0值

❑$*:

传递给程序的所有参数组成的字符串

2.字符串比较有=、!

=、-n、-z;算术运算有-eq、-ge、-le、-ne、-gt、-=lt;逻辑运算有!

、-a、-o;文件测试-d、-f、-x等;

3.for循环

❑语法:

for变量in列表

do

操作

done

4.while循环

❑语法:

while表达式

do

操作

done

5.until循环

❑语法:

until表达式

do

操作

Done

6.if语句

❑语法:

if表达式1then

操作

elif表达式2then

操作

elif表达式3then

操作

else

操作

fi

7.case语句

❑语法:

case字符串in

值1|值2)

操作;;

值3|值4)

操作;;

值5|值6)

操作;;

*)

操作;;

esac

case的作用就是当字符串与某个值相同是就执行那个值后面的操作。

如果同一个操作对于多个值,则使用"|"将各个值分开。

在case的每一个操作的最后面都有两个";;",分号是必须的。

四、实验步骤与操作指导

1.调试下列shell程序,写出变量$#,$0,$1,$2,$3,$@的含义。

#!

/bin/bash

echo“程序名:

$0”

echo“所有参数:

$@”

echo“前三个参数:

$1$2$3”

shift

echo“程序名:

$0”

echo“所有参数:

$@”

echo“前三个参数:

$1$2$3”

shift3

echo“程序名:

$0”

echo“所有参数:

$@”

echo“前三个参数:

$1$2$3”

exit0

修改程序,使用变量$#,程序运行时从键盘输入文件名,判断目录或者文件是否存在,如果存在,显示文件内容。

提示:

readDORF

if[-d$DORF]

then

ls$DORF

elif[-f$DORF]

......

2.编写一个shell程序,此程序的功能:

显示root用户目录下的文件信息,然后建立一个kk的文件夹,在此文件夹下新建一个文件aa,修改此文件的权限为可执行。

提示:

1.进入root目录:

cd/root

2.显示root目录下的文件信息:

ls–l

3.新建文件夹kk:

mkdirkk

4.进入root/kk目录:

cdkk

5.新建一个文件aa:

viaa#编辑完成后需手工保存

6.修改aa文件的权限为可执行:

chmod+xaa

7.回到root目录:

cd/root

在此基础上修改程序,所建立的目录名从键盘输入,把/root下的所有文件信息保存在aa文件中。

3.调试下列shell程序,此程序的功能是:

利用内部变量和位置参数编写一个名为test2的简单删除程序,如删除的文件名为a,则在终端输入的命令为“testa”。

提示:

除命令外至少还有一个位置参数,即$#不能为0,删除的文件为$1。

(1)用vi编辑程序

[root@localhostbin]#vitest2

#!

/bin/sh

iftest$#-eq0

then

echo"Pleasespecifyafile!

"

else

gzip$1#先对文件进行压缩

mv$1.gz$HOME/dustbin#移动到回收站

echo"File$1isdeleted!

"

fi

(2)请修改程序,查看回收站中的文件,从键盘输入回收站中的某一文件,把此文件恢复到/home目录下。

(3)删除垃圾箱中的所有文件。

4.调试下列程序并记录实验结果,程序的主要思想是用while循环求1到100的和。

(1)用gedit编辑脚本程序test12

[root@localhostbin]#gedittest12

total=0

num=0

while((num<=100));do

total=`expr$total+$num

((num+=1))

done

echo"Theresultis$total"

(2)用for语句完成以上求和。

(3)编写shell程序计算1+1/2+1/3+1/4+…+1/n

5.调试下列程序并记录实验结果,功能是使用shell编写一个菜单,分别实现列出以下内容:

(1)目录内容、

(2)切换目录、(3)创建文件、(4)编辑文件、(5)删除文件的功能。

在此例中将用到循环语句until、分支语句case、输入输出语句read和echo。

#!

/bin/bash

until

echo"

(1)Listyouselecteddirectory"

echo"

(2)Changetoyouselecteddirectory"

echo"(3)Creatanewfile"

echo"(4)Edityouselectedfile"

echo"(5)Removeyouselectedfile"

echo"(6)ExitMenu"

readinput

iftest$input=6then

exit0

fi

do

case$inputin

1)ls;;

2)echo-n"Entertargetdirectory:

"

readdir

cd$dir

;;

3)echo-n"Enterafilename:

"

readfile

touch$file

;;

4)echo-n"Enterafilename:

"

readfile

vi$file

;;

5)echo-n"Enterafilename:

"

readfile

rm$file

;;

*)echo"Pleaseselected1\2\3\4\5\6";;

esac

done

(2)修改以上程序,用菜单形式完成算术四则混合运算。

(3)修改以上程序,用菜单形式调用5个应用程序。

 

五、实验结果记录

六、实验结果分析

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1