1、实验3Shell程序设计实验报告3课程名称: Linux驱动程序开发 实验名称: Shell程序设计 学生姓名: 班级: 学号: 指导老师: 钱振江 成绩: 一、实验目的1Shell程序设计中变量的使用;2理解通道的概念并初步掌握它的使用方法;3掌握算术操作、字符串操作、逻辑操作、文件操作;4掌握if then fi、if then elif fi、case、while、for等控制语句;5在shell脚本中使用函数;二、实验任务与要求1通过对shell程序的调试,理解变量$#,$0,$1,$2,$3,$的含义;2Shell顺序程序设计;3Shell分支程序与多分支程序设计;4Shell循环程
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、-o;文件
3、测试-d、-f、-x等;3for 循环 语法:for 变量 in 列表 do 操作 done4while循环 语法:while 表达式 do 操作 done5until循环 语法:until 表达式do操作Done6if语句 语法:if 表达式1 then操作elif 表达式2 then操作elif 表达式3 then操作else操作fi7case语句 语法:case 字符串 in值1|值2)操作;值3|值4)操作;值5|值6)操作;*)操作;esaccase的作用就是当字符串与某个值相同是就执行那个值后面的操作。如果同一个操作对于多个值,则使用|将各个值分开。在case的每一个操作的最后面都
4、有两个;,分号是必须的。四、实验步骤与操作指导1调试下列shell程序,写出变量$#, $0, $1, $2, $3, $的含义。#! /bin/bashecho “程序名:$0”echo “所有参数: $”echo “前三个参数:$1 $2 $3”shiftecho “程序名:$0”echo “所有参数: $”echo “前三个参数:$1 $2 $3”shift 3echo “程序名:$0”echo “所有参数: $”echo “前三个参数:$1 $2 $3”exit 0修改程序,使用变量$#,程序运行时从键盘输入文件名,判断目录或者文件是否存在,如果存在,显示文件内容。提示:read DO
5、RFif -d $DORF then ls $DORF elif -f $DORF .2编写一个shell程序,此程序的功能:显示root用户目录下的文件信息,然后建立一个kk的文件夹,在此文件夹下新建一个文件aa,修改此文件的权限为可执行。提示:1. 进入root目录:cd /root2. 显示root目录下的文件信息:ls l3. 新建文件夹kk:mkdir kk4. 进入root/kk目录:cd kk5. 新建一个文件aa:vi aa #编辑完成后需手工保存6. 修改aa文件的权限为可执行:chmod +x aa7. 回到root目录:cd /root在此基础上修改程序,所建立的目录名从
6、键盘输入,把/root下的所有文件信息保存在aa文件中。3调试下列shell程序,此程序的功能是:利用内部变量和位置参数编写一个名为test2的简单删除程序,如删除的文件名为a,则在终端输入的命令为“test a”。提示:除命令外至少还有一个位置参数,即$#不能为0,删除的文件为$1。(1) 用vi编辑程序rootlocalhost bin#vi test2#!/bin/sh if test $# -eq 0 then echo Please specify a file! else gzip $1 #先对文件进行压缩 mv $1.gz $HOME/dustbin #移动到回收站 echo F
7、ile $1 is deleted !fi (2) 请修改程序,查看回收站中的文件,从键盘输入回收站中的某一文件,把此文件恢复到/home目录下。(3) 删除垃圾箱中的所有文件。4调试下列程序并记录实验结果,程序的主要思想是用while循环求1到100的和。(1) 用gedit编辑脚本程序test12rootlocalhost bin#gedit test12 total=0 num=0 while(num=100);do total=expr $total + $num (num+=1) done echo The result is $total(2) 用for语句完成以上求和。(3) 编
8、写shell程序计算1+1/2+1/3+1/4+ +1/n5.调试下列程序并记录实验结果,功能是使用shell编写一个菜单,分别实现列出以下内容:(1)目录内容、(2)切换目录、(3)创建文件、(4)编辑文件、(5)删除文件的功能。在此例中将用到循环语句until、分支语句case、输入输出语句read和echo。#! /bin/bashuntil echo (1)List you selected directory echo (2)Change to you selected directory echo (3)Creat a new file echo (4)Edit you selec
9、ted file echo (5)Remove you selected file echo (6)Exit Menu read input if test $input = 6 then exit 0 fido case $input in 1) ls; 2) echo -n Enter target directory: read dir cd $dir ; 3) echo -n Enter a file name: read file touch $file ; 4) echo -n Enter a file name: read file vi $file ; 5) echo -n Enter a file name: read file rm $file ; *) echo Please selected 123456 ; esacdone(2)修改以上程序,用菜单形式完成算术四则混合运算。(3)修改以上程序,用菜单形式调用5个应用程序。五、实验结果记录 六、实验结果分析
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1