• 第三章条件测试和结构化语句1


    第三章 条件测试和结构化语句

    知识要点

    • 条件测试
    • if语句
    • for循环语句

    条件测试操作

    test命令
    测试特定的表达式是否成立,当条件成立时,测试语句的返回值是0,否则为其他值
    格式1:test 条件表达式
    格式2:[ 条件表达式 ]
    注释:格式2中的条件表达式和方括号之间至少有一个空格。

    常见的测试类型

    • 测试文件状态
    • 整数值的比较
    • 字符串的比较
    • 逻辑测试

    文件测试

    格式:[ 操作符 文件或者目录 ]

    常用的测试操作符
    -d:测试是否为目录(directory)
    -e:测试目录或者文件是否存在(exist)
    -f:测试是否为文件(file)
    -s:测试文件存在且内容非空(仅有1个空格是非空)
    -r:测试当前用户是否有权限读取(read)
    -w:测试当前用户是否有权限写入(write)
    -x:测试当前用户是否有权限执行(excute)

    常用的测试操作符

    整数值比较

    整数值比较传统方法
    格式:[ 整数1 操作符 整数2 ]
    常用的测试操作符
    -eq:等于(equal)
    -ne:不等于(not equal)
    -gt:大于(greater than)
    -lt:小于(lesser than)
    -le:小于等于(lesser or equal)
    -ge:大于等于(greater or equal)

    常用的测试操作符

    双圆括号整数值比较推荐方法
    格式(( 整数1 操作符 整数2 ))

    字符串比较

    字符串比较传统方法
    格式1:[ 字符串1 = 字符串2]
    [ 字符串1 != 字符串2]
    格式2:[ -z 字符串 ]

    常用的测试操作符
    =:字符串内容相同
    !=:字符串内容不同,!号表示相反的意思
    -z:字符串内容为空
    -n:字符串非空

    字符串比较时建议加上双引号

    双方括号字符串比较推荐方法
    格式:[[字符串1 = 字符串2 ]]
    可以解决变量中带空格的问题


    可以使用统配符

    逻辑测试

    格式1:[表达式1] && 或者 || [表达式2] …
    格式2:[表达式1 -a 或者 -o 表达式2]
    常用的测试操作符
    -a 或&&:逻辑与,“而且”的意思
    前后两个表达式都为真时整个表达式结果才为真,否则为假

    -o或 ||:逻辑或,“或者”的意思
    操作符两边至少一个为真时,结果为真,否则结果为假。

    !:逻辑否
    当指定的条件不成立时,返回结果为真。

    实验案例1

    使用条件测试完成下列任务
    测试/分区磁盘空间,小于10%,显示“一切正常”,否则显示“当前的磁盘空间是磁盘空间% 警告”
    统计当前系统的登陆用户,登陆用户小于3个,显示“一切正常”,否则显示“登陆用户已经有:个数”
    测试当前主机eth0的网卡入站和出站流量,只要两个都大于200MiB,就显示“警告”;
    当内存空闲空间小于内存的5%时,显示“内存不足”,否则显示“当前空闲内存是:内存空闲数值”

    if语句的结构

    单分支结构

    双分支结构

    多分支结构

    exit

    默认情况下shell脚本中最后一条命令的退出状态退出,exit后的命令不会被执行,马上退出脚本
    exit n n是0-255的退出状态数值,不写n默认是0。

    for语句结构

    读取不同变量的值,用来逐个执行同一组命令

    bash shell支持c式for循环

    1. for((i=1;i<10;i++))

    根据脚本输入的参数创建任意个文件

    编写脚本清空所有arp缓存记录

    1. #!/bin/bash
    2. for i in $(arp | tail -n +2 | tr -s ' ' | cut -d' ' -f1)
    3. do
    4. arp -d $i
    5. done

    产生10个随机数

    批量添加用户

    查找用户的path环境变量中每个目录下有多少个文件要求判断目录是否存在

    查找uid大于等于500小于等于60000的用户,检查它们在"/tmp"目录中拥有的子目录或者文件数量,如果超过10个,则列出具体个数以及对应的用户账号

    编写脚本统计1000以内个数是十位2倍的数字的个数例如(24)

    根据ip检查主机状态

    根据ip检查网络中存活的主机ip

    循环控制语句
    break语句
    在for、while、until等循环语句中,用于跳出当前所在的循环体,执行循环体后的语句

    continue
    在for、while、until等循环语句中,用于跳出循环体内余下的语句,重新判断条件以便执行下一次循环

  • 相关阅读:
    JAVA 之 JSTL
    IDEA 之 ERROR:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]
    JAVA 之 EL表达式
    IDEA 之 ERROR:端口被占用
    【ubuntu】windows+ubuntu 设置windows为第一启动项
    【ubuntu】Error: environment block too small. Press any key to continue
    Navicat premium15安装破解教程
    通过django中间件和python魔法方法实现自定义session(通过文件存储session)
    每日作业 7/2
    每日作业 7/1
  • 原文地址:https://www.cnblogs.com/haitianjingyu/p/6973699.html
Copyright © 2020-2023  润新知