设为首页 加入收藏

TOP

Shell脚本应用 - 条件测试操作
2019-09-03 02:48:33 】 浏览:19
Tags:Shell 脚本 应用 条件 测试 操作

通过博文Shell脚本应用(一),可以在简单的Shell脚本程序中,各类语句将按先后顺序依次执行,从而实现批处理的自动化过程,然而,单一的顺序结构使得脚本国语机械化,不够“智能”,难以处理更加灵活的系统任务。


今天我们将认识并掌握如何进行条件测试操作,并通过正确使用if语句,使Shell脚本具有一定的“判断”能力,以根据不同的条件来完成不同的管理任务。


要使Shell脚本具有一定的“智能”,面临的第一个问题就是如何区分不同的情况已确定执行何种操作。例如:当磁盘使用率达到某个点时,发出警告信息等操作。


Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0时,表示成功;当返回值为非0时,则表示失败。使用专门的测试工具——test命令,可以对特定条件进行测试。


使用test测试命令时,两种语法:


或者


这两种方式的作用完全相同,但通常第二种语法格式较为适用。
但是需要注意:第二种语法格式中括号“[ 条件表达式 ]”与条件表达式至少需要一个空格进行分隔!


根据需要测试的条件类型不同,条件表达式也不同,比较常用的条件操作包括:


文件测试指的是根据特定的路径,判断对应的文件是目录还是文件,或者是否可读、可写、可执行等操作。常用的选项有:


执行条件测试操作以后,通过预定义变量$?来获得测试命令的返回值,从而判断该条件是否成立。比如:


为了更直观的查看测试效果,可以结合“&&”和“echo”命令一起使用。比如:


整数值比较指的是根据给定的两个整数值,判断第一个数与第二个数的关系,比如等于、大于、小于等。常用的选项有:


整数值比较在Shell甲苯编写中的应用较多。例如,用来判断已登录用户数量、开启的进程数等。比如:


字符串比较通常用力啊检查用户输入、系统环境等是否满足条件,在提供交互式操作的S我回来了脚本中,也可以用来判断用户输入的位置参数是否符合要求。常用的参数有:


语法格式:


逻辑测试指的是判断两个或多个条件之间的依懒关系。当系统任务取决于多个不同的条件时,根据这些条件是否同时成立或其中一个成立等情况,需要有一个测试过程,常用的参数有:


语法格式:


通过刚才的条件测试可以完成简单的判断并执行相应的曹组,但是当需要选择执行的命令语句较多时,这种方式会使代码显得复杂且不好理解。我们可以适当的使用if语句,来整理脚本结构,使得层次分明、清晰易懂。


在Shell脚本应用中,if语句是最常用的一种流程控制方式,用力啊根据特定的条件测试结果,分别执行不同的操作(如果……那么……)。根据不同的复杂程度,if语句的选择结构可以分为三种基本类型,适用于不同的应用场合。


if语句的:“分支”指的是不同测试结果所对应的执行语句(一条或多条)。对于if但分支的选择结构,只有在“条件成立”时才会执行相应的代码,否则不执行任何操作。


语句结构中,条件测试操作可以是“[ 条件表达式 ]”语句,也可以是其他可指定的命令语句,命令序列指的是一条或多条可执行的命令行,也包括嵌套使用的if语句或其他流程控制语句。


Shell脚本应用(二)


对于多分支的选择结构,要求针对“条件成立”、“条件不成立”两种情况分别执行不同的操作。


Shell脚本应用(二)


由于if语句可以根据测试结果的成立、不成立分别进行操作,所以能够嵌套使用,进行多次判断。


Shell脚本应用(二)


示例要求:
(1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG。
(2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。
(3)使用free命令提取出内存使用率,赋值给变量MUG。
(4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。
(5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。


也可以这样查看邮件:


您在 /var/spool/mail/root 中有邮件



Shell脚本应用 - 条件测试操作 https://www.cppentry.com/bencandy.php?fid=54&id=246812

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Shell脚本应用 - 编制shell脚本、.. 下一篇Python装饰器深入全面理解