- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告3
课程名称: Linux驱动程序开发 实验名称: Shell程序设计
学生姓名: 班级: 学号:
指导老师: 钱振江 成绩:
一、实验目的
1.Shell程序设计中变量的使用;
2.理解通道的概念并初步掌握它的使用方法;
3.掌握算术操作、字符串操作、逻辑操作、文件操作;
4.掌握if then fi、if then elif fi、case、while、for等控制语句;
5.在shell脚本中使用函数;
二、实验任务与要求
1.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 #先对文件进行压缩
mv $1.gz $HOME/dustbin #移动到回收站
echo File $1
您可能关注的文档
- 一键GHOST光盘版安装刻录使用图解概论.doc
- 甘肃省2015年会计继续教育考试(副本).doc
- 第五章 五行性格模型.pdf
- 第1篇 数据库入门.ppt
- 第五章 西英格兰大学计算机安全本科.pdf
- 浅谈手机连接监控安装过程.doc
- 电子商务公司员工手册(副本).pdf
- 第八节 善用法律维权.ppt
- 第一章 八两小店BIOS设置光盘启动图解.pdf
- 工程材料学习要点(完整版).pdf
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
文档评论(0)