实验3:Shell程序设计_第1页
实验3:Shell程序设计_第2页
实验3:Shell程序设计_第3页
实验3:Shell程序设计_第4页
实验3:Shell程序设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告3课程名称:Linux驱动程序开发实验名称: Shell程序设计学生姓名: 班级: 学号: 指导老师:钱振江成绩: 一、实验目的1. Shell程序设计中变量的使用;2 理解通道的概念并初步掌握它的使用方法;3 掌握算术操作、字符串操作、逻辑操作、文件操作;4. 掌握 if then fi、if then elif fi、case while、for 等控制语句;5. 在shell脚本中使用函数;二、实验任务与要求1. 通过对shell程序的调试,理解变量 $#,$0,$1,$2,$3,$的含义;2. Shell顺序程序设计;3. Shell分支程序与多分支程序设计;4. Shell循

2、环程序设计。三、实验工具与准备计算机PC机,Linux Ubuntu操作系统预备知识1. 环境变量:$HOME; $PATH; $PS1; $1$9; $*; $; $#; $; $?; $!等。$0是一个内部变量,它是必须的,而$1则可有可无,最常用的内部变量有$0、$#、$?、$*,它们的含义如下:$0 :命令所在的路径$# :传递给程序的总的参数数目$? : shell程序在shell中退出的情况,正常退出返回0,反之为非0值$* :传递给程序的所有参数组成的字符串2. 字符串比较有 =、!=、-n、-z;算术运算有-eq、-ge、-le、-ne、-gt、-=lt;逻辑运算有!、 -a、

3、-o ;文件测试-d、-f、-x等;3. for循环语法:for变量in列表do操作done4. while 循环语法:while 表达式do操作done5. until 循环语法:until 表达式do操作Done6. if语句语法:if表达式1 then操作elif表达式2 then操作elif表达式3 then操作else操作fi7. case语句语法:case字符串 in值1值2)操作;值3值4)操作;值5值6)操作;*)操作;esaccase的作用就是当字符串与某个值相同是就执行那个值后面的操作。如果同一个操作对于多个值,则使用|将各个值分开。在 case的每一个操作的最后面都有两个

4、 ”;”,分号是必 须的。四、实验步骤与操作指导1.调试下列shell程序,写出变量$#, $0, $1, $2, $3, $的含义。#! /bin/bashecho“程序名:$0echo“所有参数:$”echo“前三个参数:$1 $2 $3shiftecho“程序名:$0echo“所有参数:$”echo“前三个参数:$1 $2 $3shift 3echo 程序名:$0”echo 所有参数:$”echo 前三个参数:$1 $2 $3 ”exit 0修改程序,使用变量$#,程序运行时从键盘输入文件名,判断目录或者文件是否存在, 如果存在,显示文件内容。提示:read DORFif -d $DOR

5、F the nIs $DORFelif -f $DORF2编写一个shell程序,此程序的功能:显示 root用户目录下的文件信息,然后建立一个 kk的文件夹,在此文件夹下新建一个文件aa,修改此文件的权限为可执行。提示:1. 进入 root 目录:cd /root2. 显示root目录下的文件信息:ls -3. 新建文件夹 kk: mkdir kk4. 进入 root/kk 目录:cd kk5. 新建一个文件aa: vi aa#编辑完成后需手工保存6. 修改aa文件的权限为可执行: chmod +x aa7. 回至U root 目录:cd /root在此基础上修改程序,所建立的目录名从键盘输

6、入,把/root下的所有文件信息保存在aa文件中。3调试下列shell程序,此程序的功能是:利用内部变量和位置参数编写一个名为test2的简单删除程序,如删除的文件名为a,则在终端输入的命令为“test a”。提示:除命令外至少还有一个位置参数,即$#不能为0,删除的文件为$1。(1)用vi编辑程序rootlocalhost bin#vi test2#!/bi n/shif test $# -eq 0the necho Please specify a file!elsegzip $1 #先对文件进行压缩mv $1.gz $HOME/dustbin # 移动到回收站echo File $1 i

7、s deleted !fi(2)请修改程序,查看回收站中的文件,从键盘输入回收站中的某一文件,把此文件恢复到/home目录下。(3)删除垃圾箱中的所有文件。while循环求1到100的和。4 调试下列程序并记录实验结果,程序的主要思想是用(1) 用gedit编辑脚本程序test12rootlocalhost bin#gedit test12total=0num=0while( num =100);dototal=expr $total + $num(nu m+=1)doneecho The result is $total(2) 用for语句完成以上求和。(3) 编写 shell 程序计算 1

8、+1/2+1/3+1/4+ +1/n5调试下列程序并记录实验结果,功能是使用shell编写一个菜单,分别实现列出以下内容:(1)目录内容、(2)切换目录、(3)创建文件、(4)编辑文件、(5)删除文件的功能。在 此例中将用到循环语句until、分支语句case输入输出语句read和echo。#! /bin/bashuntilecho (1)List you selected directoryecho (2)Cha nge to you selected directoryecho (3)Creat a new fileecho (4) Edit you selected fileecho (5)Remove you selected fileecho (6)Exit Menuread in putif test$in put=6 the nexit 0fidocase $inputin1) ls;2) echo -n En tertarget directory:n ame:read dir cd $dir3) echo -n Entera fileread file touch $file4) echo -n Entera file name:read filevi $file5) echo -nEn te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论