• 02 shell编程之条件语句


    Shell编程之条件语句

    学习目标:

    掌握shell脚本条件测试

    掌握if语句编程

    目录结构:

     

    条件测试

    条件测试概述

    l  对特定的条件进行判断,以决定如何执行操作

    l  测试的方法

     方法1:test 条件表达式

     方法2:【条件表达式】

    l  当条件成立时,测试语句的返回值为0,否则为其他数值

    条件测试的分类

    1、 文件测试

    2、 整数测试

    3、 字符串测试

    4、 逻辑测试

    文件测试

    l  格式:【 操作符 文件或目录 】

    l  常用的测试操作符

    -d:测试是否为目录(directory)

    -e:测试目录或文件是否存在(exist)

    -f:测试是否为文件(file)

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

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

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

    实例:

    [root@poll ~]# [ -d /etc ]

    [root@poll ~]# echo $?

    0

    [root@poll ~]# [ -d /etc/profile ]

    [root@poll ~]# echo $?

    1

    [root@poll ~]# [ -d /etc ]&&echo "yes"    //&&意思是前面执行成功载执行后面

    Yes

    整数测试

    l  格式:[ 整数1 操作符 整数2 ]

    l  常用的测试测试操作符

    -eq:等于(equal)

    -ne:不等于(not equal)

    -gt:大于(greater than)

    -lt:小于(lesser than)

    -le:小于或等于(lesser or equal)

    -ge:大于或等于(greater or equal)

    实例:

    [root@poll ~]# who |wc -l

    3

    [root@poll ~]# [ `who |wc -l` -gt 5 ] && echo too many

    [root@poll ~]# [ `who |wc -l` -gt 2 ] && echo too many

    too many

    字符串测试

    l  格式1:

    [ 字符串1 = 字符串2 ]

    [ 字符串1 != 字符串2 ]

    l  格式2:

    [ -z 字符串 ]

    常用的测试操作符:

    =:字符串内容相同

    !=:字符串内容不同

    -z:字符串内容为空

    实例:

    [root@poll ~]# echo $LANG

    zh_CN.UTF-8

    [root@poll ~]# [ $LANG!="en.US" ] && echo "Not en.US"

    Not en.US

    逻辑测试

    l  格式1:

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

    命令1 操作符 命令2 …

    l  常用的测试操作符

    -a或&&:逻辑与,“而且”的意思,两个表达式都要执行成功

    -o或||:逻辑或,“或者”的意思,有一个执行成功就行了

    !:逻辑否

    实例:

    [root@poll ~]# [ -d /etc ] && [ -r /etc ] && echo "you can open it"

    you can open it

    [root@poll ~]# [ -f /etc ] || [ -d /home ] && echo ok

    Ok

    If语句

    If单分支语句

    l  If单分支语句结构

    if 条件测试操作

       then 命令序列

    fi

    if执行成功然后执行then。if没有执行成功,啥都不干

    if双分支语句结构

    if 条件测试操作

          then 命令序列1

           else 命令序列2

    fi

    if执行成功,然后执行then。If没有执行成功,执行else

    实例:

    [root@poll ~]# cat a.sh

    #!/bin/bash

    #This is my first shell-script

    #2018-03-16

    read -p "请输入你的性别:" one

    if [ $one = 男 ]

    then

    echo "you are handsome"

    else

    echo "you are beautiful"

    fi

    [root@poll ~]# sh a.sh

    请输入你的性别:男

    you are handsome

    [root@poll ~]# sh a.sh

    请输入你的性别:女

    you are beautiful

    if多分支语句

    if 条件测试操作1

           then 命令序列1

    elif 条件测试操作2

           then 命令序列2

    else 命令序列3

    fi

    条件测试操作1执行成功,执行命令序列1;失败则执行条件测试2,条件测试2执行成功则执行命令序列2,失败则执行命令序列3。

    实例:

    [root@poll ~]# vi b.sh

    #!/bin/bash

    #This is …

    read -p " 请输入你的年龄:" one

    if [ $one -le 18 ]

            then echo "you are young"

    elif [ $one -gt 18 ] && [ $one -le 60 ]

            then echo "you are so happy"

    else echo "you are old"

    fi

    [root@poll ~]# sh b.sh

     请输入你的年龄:12

    you are young

    [root@poll ~]# sh b.sh

     请输入你的年龄:19

    you are so happy

    接下来讲case语句

  • 相关阅读:
    for循环练习-----ATM取款
    面向对象基础项目----图书管理系统(数组)
    Java基础学习(二)-- 二维数组、String、StringBuffer以及类和对象之详解
    Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解
    js 解决由于&#65279(bom文件格式)产生的空白行
    自适应网站设计对百度友好的关键:添加applicable-device标签(转)
    浏览器内核控制标签--meta
    HTML5的元素与结构标签
    <img>标签的补充
    HTML <head> 头部中的各类标签
  • 原文地址:https://www.cnblogs.com/tzlsj/p/9150096.html
Copyright © 2020-2023  润新知