实验5 shell脚本的编写(二).doc

上传人:壹****1 文档编号:548183479 上传时间:2023-04-25 格式:DOC 页数:6 大小:145.50KB
返回 下载 相关 举报
实验5 shell脚本的编写(二).doc_第1页
第1页 / 共6页
实验5 shell脚本的编写(二).doc_第2页
第2页 / 共6页
实验5 shell脚本的编写(二).doc_第3页
第3页 / 共6页
实验5 shell脚本的编写(二).doc_第4页
第4页 / 共6页
实验5 shell脚本的编写(二).doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《实验5 shell脚本的编写(二).doc》由会员分享,可在线阅读,更多相关《实验5 shell脚本的编写(二).doc(6页珍藏版)》请在金锄头文库上搜索。

1、广东技术师范学院实验报告学院:广东技术师范学院专业:软件工程班级:09软件成绩:姓名:学号:组别:组员:实验地点:工业中心204实验日期:2011.9.29指导教师签名:预习情况操作情况考勤情况数据处理情况实验 5 项目名称: SHELL脚本的编写(二) 1、 实验目的通过对典型的SHELL脚本进行验证,以及编写具有一定实用程度的SHELL脚本,理解并掌握SHELL脚本的基本编写方法。2、 实验内容本实验内容是实验4的延续。介绍字符串、数字的比较,文件属性的判断,逻辑操作符号以及基本控制语句。2.1字符串比较两个字符串之间的比较主要利用如下四种符号来实现,我们通过一个脚本来演示这些符号的使用方

2、法。l = : 比较两个字符串是否相等l != : 比较两个字符串是否不相等l -n : 判定字符串的长度是否大于零l -z : 判定字符串的长度是否等于零请运行以下脚本例子,并将结果以截图形式附于例子后。例子:字符串比较的使用演示。注意运行时给定各种参数以使各个分支都能得到执行。注意测试比较字符串时使用$1的格式(使用双引号),此外第一个分支中的$1x = $2x是为了避免当程序没有得到参数时报错,实际编写程序时应首先检查用户输入参数的合法性。#!/bin/shif $1x = $2x ; thenecho $1=$2elseecho $1!=$2fiif $1 ; then echo $1

3、 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 : 比较一个数是否小于或

4、等于另一数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编

5、程中比较重要: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 rea

6、d 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 基

7、本控制语句(1)分支选择语句这里主要介绍if语句和case语句。if语句格式如下, if expression ; thenstatementselif expression ; thenstatements;elsestatements;fi注意判断条件与方括号之间存在空格以及一些表达上的小细节,否则在运行脚本时很容易出错。此外,if条件是可以嵌套的,也即一个if条件可以在其中包含另一个if条件。if条件中的elif和else部分不是必需的。字fi指出if语句的结束,应保证fi与if相匹配。之前介绍的例子中包含了大量if语句的使用,这里就不再举新的例子。case语句格式如下: case st

8、r instr1 | str2)statements;str3 | str4)statements;*)statements;esac使用case语句时可以对每个条件指定若干个离散值(如str1,str2等),或指定含有通配符的值。最后的条件应该是*,当之前所有条件都不满足,作为默认(default),执行该语句。此外,每个条件下使用;作为语句的终止和跳出。请结合以下例子理解case语句的使用,并将结果以截图形式附于例子后。例子:运行脚本后输入一个字符,脚本会对其类型进行判断。#!/bin/bashecho Hit a key, then hit return.read Keypresscas

9、e $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备份到用户主目录下(每个用户都有一个专门属

10、于他自己的目录,可通过$HOME查看)。注意在自己的用户主目录下先创建compare1和compare2两个文件以及backup文件夹。#!/bin/bashfor filename in compare1 compare2docp $filename $HOME/backup/$filenameif $? -ne 0 ; thenecho copy for $filename failedfidone作业:(1) 将第2节实验内容中标注为例子的shell脚本代码执行并将运行的截图附于每个例子之后。 (2) 编写脚本,实现将当前目录中具有写入权限的普通文件的名称打印到屏幕上。 (3) 首先以你的姓氏的拼音为开头在你的主目录下新建3个文件和2个文件夹,如chen1,chen2,chen3以及文件夹chen.d和backup.d。然后写一个Shell脚本程序,要求把上述所有以你姓氏拼音开头的普通文件(注意不包括文件夹,因此需要作出相应判断)全部拷贝到目录backup.d下。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号