LinuShell自动化运维教学设计-Shell条件测试教学设计_第1页
LinuShell自动化运维教学设计-Shell条件测试教学设计_第2页
LinuShell自动化运维教学设计-Shell条件测试教学设计_第3页
LinuShell自动化运维教学设计-Shell条件测试教学设计_第4页
LinuShell自动化运维教学设计-Shell条件测试教学设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LinuxShell自动化运维

初中九年级教学教嗓教学设计

课程名称:LinuxShell自动化运维____________

授课年级:____________________________________

授课学期:____________________________________

教师姓名:____________________________________

20xx年03月01日

计划

课程名称第2章Shell条件测试4学时

学时

本章主要介绍Shell中地条件测试语句,if条件语句,case条件语句,case条件

内容分析

语句案例实战

教学目地

要求学生熟悉Shell中地条件测试语句,熟悉if条件语句,熟悉case条件语句,

熟悉使用if与case条件语句编写脚本

教学要求

教学重点Shell中地条件测试,吾句,if条件语句,case条件语句,case条件语句案例实战

教学难点Shell中地条件测试语句,if条件语句,case条件语句,case条件语句案例实战

教学方式课堂讲解及ppt演示

第一课时

(Shell中地条件测试语句,if条件语句)

回顾内容,引出本课时主题

1.回顾内容,引出本课时主题。

上面两节学习了Shell变量地有关内容,本节开始Shell条件测试地有关

内容,Shell脚本就是各种命令,判断与循环语句地集合,如Linux命令,if条件

语句,for循环语句等,也就是说Shell脚本把含有逻辑运算地一段可执行代码

写在了程序文件中。本节着重讲解Shell中地条件测试语句与if条件语句,

从而引出本节地内容。

学2.明确学习目地

(1)能够熟悉文件测试与整数测试

过(2)能够熟悉字符串测试与逻辑运算符

(3)能够理解if单分支,if双分支与if多分支

程(4)能够理解if语句配置yum源实战脚本

知识讲解

>Shell中地条件测试语句

在Shell中,各种条件结构通常都需要进行各种测试,然后根据测试结果

执行不同地操作。测试判断有时也会与if等条件语句相结合,以减少程序运

行地错误。

在Shell中,对指定地条件进行判断,执行条件测试表达式后通常会返回

“真“或“假二就像执行命令后地返回值为0表示真,非0表示假一样。接下来详

细介绍各种测试语句。

>文件测试

在Shell编程中,通常使用test命令进行条件测试,语法形式为“test〈测试

表达式注意,利月test命令进行条件测试表达式时,test命令与”〈测试表达

式)”之间至少有一个空格。

除test可以使用”〈测试表达式〉”外,还有一种方式可以使用”〈测试表达

式〉”,就是使用中括号,语法格式为"V测试表达式习”。通过口进行条件测试地

方法,与test命令用法相同,推荐使用此方法。

文件测试操作符如表所示。

-d测试是否为目录(Directory)

-a测试目录或文件是否存在(Exist)

-f测试是否为文件(File)

-r测试当前用户是否可读(read)

-w测试当前用户是否可写(write)

-X测试当前用户是否可执行(excute)

>整数测试

整数测试通常用于数值之间地运算,其语法格式为[整数1操作符整数

2]或test整数1操作符整数2。整数测试操作符如表所示。

操作符意义

■eq等于(Equal)

-ne不等于(NotEqual)

-gt大于(GreaterThan)

-It小于(LesserThan)

-le小于或等于(LesserorEqual)

-ge大于或等于(GreaterorEqual)

另外,也可以使用C语言中地关系运算符比较两个变量地大小,比较地结

果是一个布尔值,即irue或false。注意要用双小括号(())。

关系运算符如表所示。

符号意义

==等于(Equal)

!=不等于(NotEqual)

>大于(GreaterThan)

<小于(LesserThan)

<=小于或等于(LesserorEqual)

>=大于或等于(GreaterorEqual)

〃字符串测试

字符串测试操作符地作用包括比较字符串是否相同,测试字符串地长度

是否为Oo书写表达式为[字符串1=字符串2],[字符串1!=字符串2]或[・z

字符串]。

字符串测试运算符如表所示。

符号意义

-Z判断字符串长度是否为0

-n判断字符串长度是否为非0

1判断两个字符串是否不相等

=判断两个字符串是否相等

>逻辑运算符

在Shell条件测试中,使用逻辑运算符实现复杂地条件测试,逻辑运算符

用于操作两个变量。逻辑运第符语法格式为:

[表达式1]操作符[表达式2]

命令1操作符命令2

常用地操作符如表所示(注意:与・o放在口里面用,&&与||放在口外面

用)。

运算符意义

-a或&&判断操作符两边均为真,结果为真,否则为假,"逻辑与“

-0或II判断操作将两边一边为真.结果为真,否则为假,"逻辑或"

1判断操作符两边均为假,结果为真,否则为假,“逻辑否”

>if单分支

if条件语句地单分支结构语法格式为:

if[条件表达式]

then

代码块

fi

或:

if[条件表达式];then

代码块

fi

每个if语句都以if开头,并带有then,最后以fi结尾,if单分支结构主体就

是"如果……,那么……”表示为如果条件表达式地结果为真,则执行代码块中

代码,如果条件表达式为假,则不执行。

>if双分支

if条件语句地凶分支结构主体就是“如果……那么......",而if条件语句地

双分支结构主体则为“如果……那么......否则......"o

if条件语句地双分支结构语法格式为:

if[条件表达式]

then

代码块1

else

代码块2

fi

另外,if双分支结构主体也可以把then与if放在一行用分号(;)隔开,表示

如果条件表达式为真,那么执行代码块1,否则执行代码块2。

>if多分支

if条件语句多分支结构地主体为“如果……就……否则......就……否

则……"oif条件语句地多分支结构语法格式为:

if(条件表达式1];then

代码块1

elif[条件表达式2];then

代码块2

elif[条件表达式3];then

代码块3

else

代码块4

fi

注意:多分支elif地写法,每个elif都要带有ihen,最后结尾地else后面没

有theno另外,根据if条件语句多分支结构地主体为:“如果……就……,否

则……就否则……。”表示为如果条件表达式1为真,那么执行代码块1,

或者条件代码块2为真,就执行代码块2,或者条件表达式3为真,就执行代码

块3,否则执行代码块4。

>if语句配置yum源实战脚本

根据当前操作系统地版本,配置不同地yum源版本。下面是使用if多分

支结构编写地根据系统版本配置yum源地脚本,具体参见例2-10。

第二课时

(case条件语句,case条件语句案例实战)

内容回顾

1.回顾上节内容,引出本课时主题。

上节已经介绍了Shell中地条件测试语句与if条件语句,下面将介绍case

条件语句与case条件语句案例实战地内容,从而引出本节内容。

2.明确学习目地

(1)能够熟悉case条件语句

(2)能够熟悉case删除用户判断

(3)能够熟悉case实现系统工具箱地使用

(4)能够熟悉case实现jumpserver

(5)能够熟悉case实现多版本PHP安装

知识讲解

>case条件语句

case条件语句相当于多分支地if/elif/else条件语句。由于if语句看起来

略微复杂,case条件语句看起来比if语句更加简洁工整、故此case常应用在

实现系统服务启动脚本等企业应用场景中。

下面介绍case条件语句地语法。

在Shell编程中case语句有固定地语法格式。其语法格式为:

case变量值in

条件表达式1)

代码块1

//

条件表达式2)

代码块2

;7

条件表达式3)

代码块3

!i

*)

无匹配后代码块

esac

在case语句中,程序会获取case语句中地变量值。如果变量值满足条件

表达式1,则执行代码块1;如果满足条件表达式2,则执行代码块2;如果满足

条件表达式3,则执吁代码块3;执行到双分号(;;)停止;如果都不满足厕执行

*)后面地代码块(此处地双分号可以省略)。只要满足一个条件表达式就会跳

出case语句主体,执行esac字符后面地命令。

条件表达式匹配如表所示。

条件表达式说明

*任意字符

n任意单个字符

[abc]a.b或c其中之一

la-n]从a到n地任一字符

1多重选择

>case删除用户判断

case语句结合read命令(读入用户输入地内容),与对应地变量名建立关

联。如果用户输入正确地内容,返回一个结果;如果输入其它内容,返回另外一

个结果。首先用if条件语句写一个删除用户地脚本。

使用if语句实现提示用户输入信息并赋值给user变量。如果返回值不

等于0,则显示没有这个用户,否则用户存在。然后,根据脚本地提示信息删除

用户。接下来演示case语句删除用户地用法,具体参见例2-12。

>case实现系统工具箱地使用

系统工具箱就是查看系统情况,如内存大小,磁盘负载,CPU大小。接下来

演示case条件语句实现简单地系统工具箱脚本,具体参见例2-13o

采用cat命令打印菜单,如果用户输入h,则打印出菜单;如果用户输入f,

则执行磁盘分区命令;如果用户输入d,则执行磁盘空间使用情况;如果用户输

入m,则执行内存使用情况;如果用户输入u,则执行uptime命令,这个命令主

要用于获取主机运行时间与查询Linux系统负载等信息;如果用户输入q,则

跳出整个循环;如果用户输入为空则不显示内容,否则显示错误。

>case实现jumpserver

jumpserver是一款用Python编写地开源跳板机(堡垒机)系统,实现了跳

板机应有地功能。它是基于SSH协议来管理地,客户端无须安装agento相

信诸位对跳板机(堡垒机)不会陌生,为了保证服务器安全,加个堡垒机,所有

SSH协议连接都通过堡垒机来完成,堡垒机也需要有身份认证,访问控制,审计

等功能。

下面主要是用case条件语句来实现跳板机。整个架构设计如下:用户以

alice用户登录到跳板机,在跳板机上用case编写个脚本跳转到后端地三个

服务器,分别为webl,web2,mySqllu指定用户登录到系统就会执行脚本。执

行脚本地命令放在alice用户根目录地.bashrc_profile文件中。其中,用户登录

到跳板机可以有两个方式认证,一种是密码认证,另一种是密钥认证。

接下来演示case条件语句实现跳板机地用法,具体参见例2-14。

采用cat命令打印菜单,如果用户输入信息为1,则执行下面地ssh连接到

webl;如果用户输入信息为2,则执行下面地ssh连接到web2;如果用户输入信

息为3,则执行下面地s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论