




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东技术师范学院实验报告学院:专业:班级:成绩:姓名:学号:组别:组员:实验地点:实验日期:指导教师签名:预习情况操作情况考勤情况数据处理情况实验 5 项目名称: SHELL脚本的编写(二) 1、 实验目的通过对典型的SHELL脚本进行验证,以及编写具有一定实用程度的SHELL脚本,理解并掌握SHELL脚本的基本编写方法。2、 实验内容本实验内容是实验4的延续。介绍字符串、数字的比较,文件属性的判断,逻辑操作符号以及基本控制语句。2.1字符串比较两个字符串之间的比较主要利用如下四种符号来实现,我们通过一个脚本来演示这些符号的使用方法。l = : 比较两个字符串是否相等l != : 比较两个字符串是否不相等l -n : 判定字符串的长度是否大于零l -z : 判定字符串的长度是否等于零请运行以下脚本例子,并将结果以截图形式附于例子后。例子:字符串比较的使用演示。注意运行时给定各种参数以使各个分支都能得到执行。注意测试比较字符串时使用$1的格式(使用双引号),此外第一个分支中的$1x = $2x是为了避免当程序没有得到参数时报错,实际编写程序时应首先检查用户输入参数的合法性。#!/bin/shif $1x = $2x ; thenecho $1=$2elseecho $1!=$2fiif $1 ; then echo $1 is not emptyelse echo $1 is emptyfiif -n $1 ; then echo $1 is not nullelse echo $1 is nullfiif -z $1 ; then echo $1 has a length equal to zeroelse echo $1 has a length greater than zerofi2.2数字比较两个字符串之间的比较主要利用如下六种符号来实现,我们同样通过一个脚本来演示这些符号的使用方法。l -eq : 比较两个数是否相等l -ge : 比较一个数是否大于或等于另一数l -le : 比较一个数是否小于或等于另一数l -ne : 比较两个数是否不相等l -gt : 比较一个数是否大于另一数l -ft : 比较一个数是否小于另一数请运行以下脚本例子,并将结果以截图形式附于例子后。例子:数字比较的使用演示。注意运行时给定各种参数以使各个分支都能得到执行。注意由于此程序不做输入合法性检查,测试时只能给出数字。#!/bin/shif $1 -gt $2 ; then echo $1 $2else if $1 -eq $2 ; then echo $1 = $2 else echo $1 $2 fifi2.3判断文件属性用的符号在系统管理中必然涉及到对文件的各种属性加以判断,因此以下的符号在shell编程中比较重要:l -d:确定文件是否为目录l -f:确定文件是否为普通文件l -r:确定是否对文件设置读许可l -s:确定文件名是否具有大于零的长度l -w:确定是否对文件设置写许可l -x:确定是否对文件设置执行许可请运行以下脚本例子,并将结果以截图形式附于例子后。例子:判断文件属性的符号的使用演示。注意脚本中的变量test需要在脚本运行之前设定为合适的文件路径,并将该变量输出(export)为公共变量(参考实验4中2.4节第(2)部分)。#!/bin/shif -r $test ; then echo has a read permissionelse echo has not a read permissionfi2.4逻辑操作符号常用的逻辑操作符号有三个:l !:对一个逻辑表达式求反l -a:对两个逻辑表达式执行逻辑ANDl -o:对两个逻辑表达式执行OR请运行以下脚本例子,并将结果以截图形式附于例子后。例子:逻辑操作符号的使用演示。注意脚本运行时给定合适的参数。#!/bin/shif $1 -gt $2 -a $1 -gt $3 ; then echo max : $1fiif $2 -gt $1 -a $2 -gt $3 ; then echo max : $2fiif $3 -gt $1 -a $3 -gt $2 ; then echo max : $3fi2.5 基本控制语句(1)分支选择语句这里主要介绍if语句和case语句。if语句格式如下, if expression ; thenstatementselif expression ; thenstatements;elsestatements;fi注意判断条件与方括号之间存在空格以及一些表达上的小细节,否则在运行脚本时很容易出错。此外,if条件是可以嵌套的,也即一个if条件可以在其中包含另一个if条件。if条件中的elif和else部分不是必需的。字fi指出if语句的结束,应保证fi与if相匹配。之前介绍的例子中包含了大量if语句的使用,这里就不再举新的例子。case语句格式如下: case str instr1 | str2)statements;str3 | str4)statements;*)statements;esac使用case语句时可以对每个条件指定若干个离散值(如str1,str2等),或指定含有通配符的值。最后的条件应该是*,当之前所有条件都不满足,作为默认(default),执行该语句。此外,每个条件下使用;作为语句的终止和跳出。请结合以下例子理解case语句的使用,并将结果以截图形式附于例子后。例子:运行脚本后输入一个字符,脚本会对其类型进行判断。#!/bin/bashecho Hit a key, then hit return.read Keypresscase $Keypress in A-Z | a-z ) echo letter; 0-9 ) echo Digit;* ) echo Punctuation, whitespace, or other;esac(2)循环语句这里只介绍for语句,for语句有两种使用格式,如下:(1) for curvar in list do statements done(2) for curvar do statements done请结合如下例子理解for语句的使用,并将结果以截图形式附于例子后。例子:该脚本将当前目录下的两个文件compare1和compare2备份到用户主目录下(每个用户都有一个专门属于他自己的目录,可通过$HOME查看)。注意在自己的用户主目录下先创建compare1和compare2两个文件以及backup文件夹。#!/bin/bashfor filename in compare1 compare2docp $filename $HOME/backup/$filenameif $? -ne 0 ; thenecho copy for $file failedfidone作业:(1) 将第2节实验内容中标注为例子的shell脚本代码执行并将运行的截图附于每个例子之后。(2) 编写脚本,实现将当前目录中具有写入权限的普通文件的名称打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宁波大学附属人民医院招聘编外人员1人考前自测高频考点模拟试题带答案详解
- 公司货运代办业务员基础考核试卷及答案
- 公司印后成型工入职考核试卷及答案
- 年产5000吨高性能碳纤维及复合材料项目风险评估报告
- 大众控烟知识培训通知课件
- 公司挤出拉制模具工理念考核试卷及答案
- 大众专业知识培训心得课件
- 2025辽宁鞍山市立山区教育局面向应届毕业生校园招聘2人模拟试卷及答案详解(各地真题)
- 公司选剥混茧工工作流程认知考核试卷及答案
- 工程质量改进与提升方案
- 2025年贵州高考生物试卷真题及答案详解(精校打印版)
- 2025四川成都高新投资集团有限公司选聘中高层管理人员4人笔试参考题库附答案解析
- 湖南省九校联盟2026届高三上学期9月第一次联考物理试题(含答案)
- 第4章工程活动中的环境伦理
- 货架承载力计算单位公斤
- 畜牧兽医职称考试题库及答案
- 安东尼奥高迪设计大师
- 混凝土施工技术难点及相应解决方案,通用
- 初中励志英语谚语
- 2023年云南曲靖市交通建设投资集团有限公司招聘笔试题库及答案解析
- 招工简章模板(可编辑)
评论
0/150
提交评论