实验3:Shell程序设计
更新时间:2023-11-05 02:18:01 阅读量: 综合文库 文档下载
实验报告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循环程序设计。
三、实验工具与准备
计算机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;文件测试-d、-f、-x等; 3.for 循环
? 语法:
for 变量 in 列表 do 操作 done 4.while循环
? 语法: while 表达式 do 操作 done 5.until循环
1
? 语法: until 表达式 do 操作 Done 6.if语句
? 语法:
if 表达式1 then 操作
elif 表达式2 then 操作
elif 表达式3 then 操作 … 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” shift 3
2
echo “程序名:$0” echo “所有参数: $@”
echo “前三个参数:$1 $2 $3” exit 0
修改程序,使用变量$#,程序运行时从键盘输入文件名,判断目录或者文件是否存在,如果存在,显示文件内容。提示:
read DORF if [ -d $DORF ] then
ls $DORF elif [ -f $DORF] ......
2.编写一个shell程序,此程序的功能:显示root用户目录下的文件信息,然后建立一个kk的文件夹,在此文件夹下新建一个文件aa,修改此文件的权限为可执行。 提示:
1. 进入root目录:cd /root
2. 显示root目录下的文件信息:ls –l 3. 新建文件夹kk:mkdir kk 4. 进入root/kk目录:cd kk
5. 新建一个文件aa:vi aa #编辑完成后需手工保存 6. 修改aa文件的权限为可执行:chmod +x aa 7. 回到root目录:cd /root
在此基础上修改程序,所建立的目录名从键盘输入,把/root下的所有文件信息保存在aa文件中。
3.调试下列shell程序,此程序的功能是:利用内部变量和位置参数编写一个名为test2的简单删除程序,如删除的文件名为a,则在终端输入的命令为“test a”。
提示:除命令外至少还有一个位置参数,即$#不能为0,删除的文件为$1。 (1) 用vi编辑程序
[root@localhost bin]#vi test2
#!/bin/sh if test $# -eq 0 then
echo \ else
gzip $1 #先对文件进行压缩
mv $1.gz $HOME/dustbin #移动到回收站 echo \fi
3
(2) 请修改程序,查看回收站中的文件,从键盘输入回收站中的某一文件,把此文件恢复到/home目录下。
(3) 删除垃圾箱中的所有文件。
4.调试下列程序并记录实验结果,程序的主要思想是用while循环求1到100的和。 (1) 用gedit编辑脚本程序test12
[root@localhost bin]#gedit test12 total=0 num=0
while((num<=100));do
total=`expr $total + $num ((num+=1)) done
echo \(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 \ you selected directory\
echo \ to you selected directory\ echo \ a new file\
echo \ you selected file\ echo \ you selected file\ echo \ Menu\ read input
if test $input = 6 then exit 0 fi do
case $input in 1) ls;;
2) echo -n \ target directory:\ read dir cd $dir ;;
3) echo -n \ a file name:\ read file touch $file ;;
4) echo -n \ a file name:\ read file vi $file ;;
5) echo -n \ a file name:\ read file rm $file ;;
4
*) echo \ selected 1\\2\\3\\4\\5\\6 \ esac done
(2)修改以上程序,用菜单形式完成算术四则混合运算。 (3)修改以上程序,用菜单形式调用5个应用程序。
5
正在阅读:
实验3:Shell程序设计11-05
初中英语阅读与写作的整合10-15
运用任务驱动法组织展开实训模块教学01-06
第四章数据分布特征的统计描述程08-12
广东省各市各区域医院名单03-21
勒温的团体动力学05-30
18春北语《人际交往与沟通艺术》作业111-09
我喜欢的节日作文700字07-12
稽查员管理12-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 实验
- Shell
- C复习资料
- 56外委协作管理规定(定稿)
- 重庆中考数学试卷(A卷)及答案word版本 - 图文
- 20150416在高一年级全体教师会议上的讲话
- 中考完型练习Chapter 4 科普文化
- 宿州市人民政府办公室关于印发宿州市人民政府重大行政决策公众参
- 中铁十八局云桂铁路云南段项目经理部防洪安全管理制度
- 信息奥赛 - 编程基础之逻辑表达式与条件分支
- 接触网 高级工练习题
- 关于明确药品GMP认证及药品监管相关问题的通知
- 全国优秀校友寻踪策划案初稿3
- 霍元甲故事
- 中国文学史(二)考试答案
- 县委书记王俊雄在全县抗冰救灾总结表彰大会上的讲话
- 论文浅谈幼儿园游戏化教学手段的运用
- 2018水浒传第1-60回测试
- 新医改形势下基层医疗机构面临的挑战与发展思考
- 专业技术人员继续教育《职业发展与规划》按字母排序题库(单选、多选、填空、判断、简单分别排序)史上最全
- 洛阳市人民防空工程建设管理规定
- 社会学概论(专)网络形考作业(最全)