- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[实验3:Shell程序设计
实验报告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循环
语法:
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
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,修改此文件的权限为可执行。
提示:
进入root目录:cd /root
显示root目录下的文件信息:ls –l
新建文件夹kk:mkdir kk
进入root/kk目录:cd kk
新建一个文件aa:vi aa #编辑完成后需手工保存
修改aa文件的权限为可执行:chmod +x aa
回到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 Please specify a file!
else
gzip $1 #先
您可能关注的文档
- 《东方文学史考试.doc
- [实习期满的个人工作总结.doc
- 《东方航空换股吸收合并上海航空案例分析.doc
- [实习生教育调查报告.doc
- 《东方行政办公综合楼的弱电系统设计开题报告.doc
- [实习生欢送晚会主持词.doc
- [实习生调查报告.doc
- [实习老师个人总结.doc
- [实习论文:建设工程项目中资料员工作分包弊端.doc
- [实习班主任实习总结报告.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)