shell中if test使用详解

2023-12-05 0 248
目录
  • 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值不为空\’
        fi
        if test -z $str2
        then
            echo \’字符str2为空!\’
        else
            echo \’字符str2值不为空\’
        fi

        3、文件判断

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

        示例:

        #!/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
            echo \’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    
            echo \’用户名和密码 非空验证通过\’    
        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内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

        您可能感兴趣的文章:

        • Shell脚本中的printf命令使用
        • Linux shell中的printf的详细用法
        • shell学习之printf命令格式化输出语句
        • Linux shell中的test命令用法教程
        • Shell脚本test命令使用总结和实例
        • Shell中printf和test命令的实际应用详解

        收藏 (0) 打赏

        感谢您的支持,我会继续努力的!

        打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
        点赞 (0)

        悠久资源 linux shell shell中if test使用详解 https://www.u-9.cn/jiaoben/linuxshell/101441.html

        常见问题

        相关文章

        发表评论
        暂无评论
        官方客服团队

        为您解决烦忧 - 24小时在线 专业服务