开发者

shell中if test使用详解

开发者 https://www.devze.com 2023-11-09 10:52 出处:网络 作者: 猎人在吃肉
目录1、数值1.1、数值大小比较1.2、数据值运算2、字符串2.1、示例1:字符串是否相等2.2、示例2:字符串为空3、文件判断4、逻辑运算5、if elif else1、数值
目录
  • 1、数值
    • 1.1、数值大小比较
    • 1.2、数据值运算
  • 2、字符串
    • 2.1、示例1:字符串是否相等
    • 2.2、示例2:字符串为空
  • 3、文件判断
    • 4、逻辑运算
      • 5、if elif else

        1、数值

        1.1、数值大小比较

        参数说明
        -eq等于则为真
        -ne不等于则为真
        -gt大于则为真
        -ge大于等于则为真
        -lt小于则为真
        -le小于等于则为真

        示例1:

        #!/bin/bash
        num1=100
        num2=200
        if test $[num1] -eq $[num2]
        then
          echo '两个数相等!'
        else
          echo '两个数不相等!'
        fi

        1.2、数据值运算

        示例1:

        #!/bin/bash
        a=5
        b=6
        result=$[a+b] # 注意等号两边不能有空格
        echo "result 为: $result"

        2、字符串

        2.1、示例1:字符串是否相等

        参数说明
        =等于则为真
        !=不相等则为真
        -z 字符串字符串的长度为零则为真
        -n 字符串字符串的长度不为零则为真

        注意:字符串比较时,变量最好使用引号,如果变量都不为空,则没有任何问题,如果变量为空,则会报错。

        示例

        #!/bin/bash
        num1="ru1noob"
        num2="runoob"
        if test $num1 = $num2
        then
          echo '两个字符串相等!'
        else
          echo '两个字符串不相等!'
        fi

        2.2、示例2:字符串为空

        #!/bin/bash
        str=""
        str2="aaa"
        if test -z $str
        then
          echo '字符str为空!'
        else
          echo '字符str值不为空'
        fijavascript
        if test -z $str2
        then
          echo '字符str2为空!'
        else
          echo '字符str2值不为空'
        fi

        3、文件判断

        参数说明
        -e 文件名如果文件存在则为真
        -r 文件名如果文件存在且可读则为真
        -w 文件名如果文件存在且可写则为真
        -x 文件名如果文件存在且可执行则为真
        -s 文件名如果文件存在且至少有一个字符则为真
        -d 文件名如果文件存在且为目录则为真
        -f 文件名如果文件存在且为普通文件则为真
        -c 文件名如果文件存在且为js字符型特殊文件则为真
        -b python文件名如果文件存在且为块特殊文件则为真

        示例:

        #!/bin/bash
        fileName1="/cygdrive/c/Users/admin/Desktop/sh学习/demo1-1.sh"
        if test -e $fileName1
        then
          echo '文件已存在!'
        else
          echo '文件不存在!'
        fi

        4、逻辑运算

        参数说明
        -a与,并且
        -o
        !

        其优先级为: ! 最高, -a 次之, -o 最低。

        示例1:-a 使用

        #!/bin/bash
        str="aa"
        str2="bb"
        if test -n "$str" -a -n "$str2"
        then
          www.devze.comecho 'str 和 str2 都有值!'
        else
          echo 'str 、 str2 至少有一个为空'
        fi

        示例2:-a 、-o 使用

        登录时,对用户名和密码进行验证:

        #!/bin/bash
        read -p "请输入用户名和密码:" username pwd
        echo "username=$username"
        echo "pwd=$pwd"
        if test -z "$username" -o -z "$pwd"
        then
          echo '用户名和密码均不能为空'
          exit 2
        else  
          echphpo '用户名和密码 非空验证通过'  
        fi
        if test "$username" = "admin" -a "$pwd" = "123"
        then
          echo '登录成功'
        else
          echo '用户名或密码不正确'
          exit 2
        fi

        5、if elif else

        1)数值

        #!/bin/bash
        #提示用户输入分数
        read -p "请输入你的分数:" score
        #进行判断
        if [ "$score" -ge 90 -a "$score" -le 100 ]
        then
            echo "优秀"
        elif [ "$score" -ge 80 -a "$score" -lt 90 ]
        then
            echo "良好"
        elif [ "$score" -ge 70 -a "$score" -lt 80 ]
        then
            echo "一般"
        elif [ "$score" -ge 60 -a "$score" -lt 70 ]
        then
            echo "及格"
        else
            echo "西西睡把"
        fi

        2)文件

        #!/bin/bash
        #提示用户输入
        read -p "请输入内容:" con
        if [ -z "$con" ]
        then
         echo "为空"
        elif [ -d "$con" ]
        then
         echo "是目录"
        elif [ -f "$con" ]
        then
         echo "是文件"
        else
         echo "错误"
        fi

        到此这篇关于shell中if test使用详解的文章就介绍到这了,更多相关shell if test内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

        0

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        关注公众号