shell中if test使用详解
作者:猎人在吃肉
本文主要介绍了shell中if test使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!