桥接课程-linux方向-chap04-v1.0

上传人:kms****20 文档编号:51503078 上传时间:2018-08-14 格式:PPT 页数:41 大小:1.16MB
返回 下载 相关 举报
桥接课程-linux方向-chap04-v1.0_第1页
第1页 / 共41页
桥接课程-linux方向-chap04-v1.0_第2页
第2页 / 共41页
桥接课程-linux方向-chap04-v1.0_第3页
第3页 / 共41页
桥接课程-linux方向-chap04-v1.0_第4页
第4页 / 共41页
桥接课程-linux方向-chap04-v1.0_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《桥接课程-linux方向-chap04-v1.0》由会员分享,可在线阅读,更多相关《桥接课程-linux方向-chap04-v1.0(41页珍藏版)》请在金锄头文库上搜索。

1、BENET3.0第二学期课程第四章 编写Shell管理脚本( 二) 理论部分本资料由-大学生创业|创业|创业网http:/ 在线代理|网页代理|代理网页|http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/课程回顾 如何为变量赋值?如何查看变量的值? 在变量应用中,反撇号的用途是什么? 变量$0、$1、$?、$分别是什么含义? 有哪些方式可以执行Shell脚本中的语句?本资料由-大学生创业|创业|创业网http:/ 在线代理|网页代理|代理网页|http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/2 2技能展示 熟悉条

2、件测试的应用 会使用if条件语句 会使用for、while循环语句 会使用case分支语句 了解其他控制语句及函数的使用本资料由-大学生创业|创业|创业网http:/ 在线代理|网页代理|代理网页|http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/3 3编写Shell管理脚 本(二)本章结构使用if条件语 句条件测试操作 case语句 if语句的结构 until循环 if语句应用示例 使用for循环 语句 其他控制语句 for语句的结构 for语句应用示例 while语句的结构 while语句应用示例 使用while循 环语句 循环控制语句 shift

3、语句函数的定义和调用 Shell函数应 用 函数的参数传递 4 4条件测试操作 test命令 用途:测试特定的表达式是否成立,当条件成立时, 命令执行后的返回值为0,否则为其他数值 格式:test 条件表达式 条件表达式 常见的测试类型 测试文件状态 字符串比较 整数值比较 逻辑测试5 5条件测试操作 测试文件状态 格式: 操作符 文件或目录 常用的测试操作符 -d:测试是否为目录(Directory) -e:测试目录或文件是否存在(Exist) -f:测试是否为文件(File) -r:测试当前用户是否有权限读取(Read) -w:测试当前用户是否有权限写入(Write) -x:测试当前用户是

4、否可执行(Excute)该文件 -L:测试是否为符号连接(Link)文件rootlocalhost # -d /etc/vsftpd rootlocalhost # echo $?0rootlocalhost # -d /etc/hosts rootlocalhost # echo $?1返回值为0,表示上一步 测试的条件成立rootlocalhost # -e /media/cdrom then命令序列1elif 条件测试命令2 ; then命令序列2elif .else命令序列nfiif 条件测试命令1命令序列1条件为真 then命令序列n条件为假 elseelif 条件测试命令2命令序列

5、2条件为真 thenfi 结束判断1414小结 请思考: 如何判断/media/cdrom目录是否存在? 提示用户输入一个整数,如何判断该值是否小于100? 结合环境变量PWD,如何判断当前所在的工作目录是 否为 /usr/src? 逻辑测试操作符 thenecho “$UserName have $Num files.“fidone 教员演示操作过程教员演示操作过程获得使用bash作为登录 Shell的用户名列表1818while循环语句 重复测试指定的条件,只要条件成立则反复执行 对应的命令操作while 命令或表达式do命令列表donewhile 可用内存 /dev/nulli=expr

6、 $i + 1done 执行 let i+ 也可以 使变量i的值递增1教员演示操作过程教员演示操作过程2020while循环语句 应用示例2: 批量删除上例中添加的20个系统用户帐号#!/bin/bashi=1while $i -le 20 douserdel -r stu$ii=expr $i + 1done 教员演示操作过程教员演示操作过程2121case多重分支语句 根据变量的不同取值,分别执行不同的命令操作case 变量值 in模式1)命令序列1;模式2)命令序列2;* )默认执行的命令序列esaccase 变量=模式1esac 结束分支命令序列1;有变量=模式2变量=其他值(*)默认

7、命令序列无是否否命令序列2;有无是2222case多重分支语句 应用示例1: 编写脚本文件 mydb.sh,用于控制系统服务mysqld 当执行 ./mydb.sh start 时,启动mysqld服务 当执行 ./mydb.sh stop 时,关闭mysqld服务 如果输入其他脚本参数,则显示帮助信息#!/bin/bash case $1 instart)echo “Start MySQL service.“;stop)echo “Stop MySQL service.“;*)echo “Usage:$0 start|stop“;esac2323case多重分支语句 应用示例2: 提示用户从

8、键盘输入一个字符,判断该字符是否为字 母、数字或者其它字符,并输出相应的提示信息 #!/bin/bashread -p “Press some key, then press Return:“ KEYcase “$KEY“ ina-z|A-Z)echo “Its a letter.“;0-9)echo “Its a digit.“;*)echo “Its function keys、Spacebar or other keys. “esac教员演示操作过程教员演示操作过程2424until循环语句 until语句根据条件执行重复操作until 条件测试命令do命令序列doneuntil 条件测

9、试命令条件为假条件为真done 结束循环do 命令序列2525shift迁移语句 用于迁移位置变量,将 $1$9 依次向左传递 例如,若当前脚本程序获得的位置变量如下: p $1=file1、$2=file2、$3=file3、$4=file4 则执行一次shift命令后,各位置变量为: p $1=file2、$2=file3、$3=file4 再次执行shift命令后,各位置变量为: p $1=file3、$2=file42626shift迁移语句 应用示例: 通过命令行参数传递多个整数值,并计算总和rootlocalhost # vi showday.sh#!/bin/bashResult

10、=0while $# -gt 0 doResult=expr $Result + $1shiftdoneecho “The sum is : $Result“rootlocalhost # ./sumer.sh 12 34 56The sum is : 102 验证脚本执行结果2727while 命令 dobreak done 循环控制语句 break语句 在for、while、until等循环语句中,用于跳出当前所在 的循环体,执行循环体后的语句通常在循环体中与条 件语句一起使用跳 出 循 环2828while docontinue done 循环控制语句 continue 在for、whi

11、le、until等循环语句中,用于跳过循环体内 余下的语句,重新判断条件以便执行下一次循环通常在循环体中与条 件语句一起使用继 续 下 次 循 环2929Shell函数应用 Shell函数概述 在编写Shell脚本程序时,将一些需要重复使用的命令 操作,定义为公共使用的语句块,即可称为函数 合理使用Shell函数,可以使脚本内容更加简洁,增强 程序的易读性,提高执行效率3030Shell函数应用 定义新的函数 调用已定义的函数 向函数内传递参数function 函数名 命令序列 函数名() 命令序列或者函数名函数名 参数1 参数2 .3131Shell函数应用 应用示例: 在脚本中定义一个加法

12、函数,用于计算2个整数的和 调用该函数计算(12+34)、(56+789)的和#!/bin/bashadder() echo expr $1 + $2adder 12 34adder 56 789rootlocalhost # sh adderfun.sh46845 验证脚本执行结果3232本章总结编写Shell管理脚 本(二)使用if条件语 句条件测试操作 case语句 if语句的结构 until循环 if语句应用示例 使用for循环 语句 其他控制语句 for语句的结构 for语句应用示例 while语句的结构 while语句应用示例 使用while循 环语句 循环控制语句 shift 语

13、句函数的定义和调用 Shell函数应 用 函数的参数传递 3333BENET3.0第二学期课程第四章 编写Shell管理脚本( 二) 上机部分实验案例1:使用Shell脚本管理系统 需求描述 编写脚本程序用于监测系统服务httpd的运行状态 p 当服务状态失常时在“/var/log/htmon.log”文件中记入日志 p 自动将状态失常的httpd服务重新启动 p 若重启httpd服务失败,则尝试重新启动服务器主机 p 周一至周五期间每隔15分钟执行一次监测任务 编写脚本程序用于批量添加用户 p 提供交互,能根据提示指定添加用户的数量(少于100)、用 户名前缀,并能设置帐号的失效时间、初始密

14、码 p 用户名编号统一使用2位数,如使用“01”、“02”的形式 编写脚本批量删除用户 p 通过命令行参数指定要删除用户的名称前缀 p 删除以该前缀开头的所有用户,但要防止误删除root用户3535实验案例1:使用Shell脚本管理系统 实现思路 编写htmon.sh脚本文件用于监测httpd服务状态 p 通过“service httpd status” 命令的返回值判断服务状态 p 使用重定向符号“”追加记录日志 p 结合crond计划任务定期执行 编写myuadd.sh脚本用于批量添加用户帐号 p 使用read命令提示用户输入变量值进行交互 p 使用while语句循环执行添加用户的命令操作

15、 p 使用if语句判断用户编号,小于10时自动在前缀后补“0” 编写myudel.sh脚本用于批量删除用户帐号 p 通过位置参数“$1”传递要删除用户的名称前缀 p 结合“grep -v root”排除掉root用户 p 使用for循环批量删除符合条件的用户3636实验案例1:使用Shell脚本管理系统 学员练习60分钟内完成3737实验案例2:编写系统服务控制脚本 需求描述 为已安装的zebra程序编写 zebrad 服务控制脚本 p 启动服务:/etc/init.d/zebrad start p 终止服务:/etc/init.d/zebrad start p 重启服务:/etc/init.d/zebrad restart p 查看服

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

当前位置:首页 > 生活休闲 > 科普知识

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