条件测试 判断

$? 返回码 用来判断命令或者是脚本是否执行成功(最近的一条--上一次的执行结果)

0 true 为真就是成功 成立

非0 false 失败或者异常

test 测试命令

1、test 命令 可以进行条件测试然后根据的是返回值来判断条件是否成立。

test -e 测试文件或者目录是否存在 exist

test -d 测试目录是否存在

test -f 测试文件是否存在

test -r 测试当前用户是否对文件或目录有读权限

test -w 测试当前用户是否对文件或目录有写权限

test -x 测试当前用户是否对文件或目录有执行权限

[root@test2 opt]# mkdir test1
[root@test2 opt]# touch test2
[root@test2 opt]# test -e test1
[root@test2 opt]# echo $?
0
[root@test2 opt]# test -d test2
[root@test2 opt]# echo $?
1
[root@test2 opt]# test -f test2
[root@test2 opt]# echo $?
0
[root@test2 opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 6月  12 09:37 test1
-rw-r--r--. 1 root root 0 6月  12 09:37 test2
[root@test2 opt]# test -r test1
[root@test2 opt]# echo $?
0
[root@test2 opt]# test -r test2
[root@test2 opt]# echo $?
0
[root@test2 opt]# test -x test2
[root@test2 opt]# echo $?
1
[root@test2 opt]# test 3 -eq 3
[root@test2 opt]# echo $?
0
[root@test2 opt]# test 3 -gt 3
[root@test2 opt]# echo $?
1

2、整数比较符 (一下操作只能用于整数比较)

第一种模式

-eq 等于 == 既可以比较整数,也可以比较字符串

-ne 不等于 != 不等于

-gt 大于 > 大于

-lt 小于 < 小于

-ge 大于等于 >= 大于等于

-le 小于等于 <= 小于等于

比较符的第二种

[ ]

[root@test2 opt]# [ 3 -eq 3 ]
[root@test2 opt]# echo $?
0
第三种格式

[[ ]] 可以使用更高级的模式,可以使用正测表达式,而且再双括号,使用字符串的时候可以不加引号

[root@test2 opt]# a=3
[root@test2 opt]# [[ $a -eq 3 ]]
[root@test2 opt]# echo $?
0
第四种格式

(( ))

[root@test2 opt]# (( 3 >= 5 ))
[root@test2 opt]# echo $?
1
[root@test2 opt]# (( 6 >= 5 ))
[root@test2 opt]# echo $?
0

逻辑与逻辑或

与 && 条件满足才成立

或 || 有一个条件满足就成立

[root@testl opt]# a=5
[root@testl opt]#[$a ne l]&& [ $a -ne 2 ]
[root@testl opt]# echo $?
0
[root@testl opt]#[$a -ne l-a $a -ne 2 ]
[root@testl opt]# echo $?
0
​
[root@test2 opt]# a=5
[root@test2 opt]# [ $a -ne 1 ] || [ $a -ne 3 ]
[root@test2 opt]# echo $?
0
​

if语句

单份支结构

[root@test2 opt]# vim if.sh
if [ 3 -gt 2 ]
then
 echo "ok"
fi
#if 后面是测试语句
#then  命令序列,只有条件测试语句成立,才会执行then的命令模块
#fi  结束语句
[root@test2 opt]# sh if.sh 
ok

双分支结构

[root@test2 opt]# vim if.sh
if [ 3 -gt 4 ]
then
echo "ok"
else
echo "no"
fi
wq!
[root@test2 opt]# sh if.sh 
no
#条件满足执行then,不满足执行else,执行完毕语句结束。

#随机输入一个整数,read-p输入一个数#判断这个数是偶数还是奇数,偶数提示偶数,奇数提示奇数
​
read -p "输入一个数" a
if (( $a% 2 == 0 ))
then
echo "偶数"
else
echo "奇数"
fi

多分支结构

#请输入您的分数,0-100大于等于85,且小于等于100 优秀
大于等于70,且小于等于84一般
大于等于60,且小于等于69 合格
小于60,30遍
​
read -p "请输入您的分数" a
if [[ $a -ge 85 && $a -le 100 ]]
then
echo "优秀"
elif [[ $a -ge 70 && $a -le 84 ]]
then
echo "一般"
else [[ $a -ge 60 && $a -le 69 ]]
echo "合格"
else
echo "30遍"
fi
#a白定义输入,只有整数才可以进入到分数的区间。#嵌套if
read -p "请输入您的分数" a
if [[ $a -eq $a ]]
 then
  if [[ $a -ge 85 && $a -le 100 ]]
then
 echo "优秀"
elif [[ $a -ge 70 && $a -le 84 ]]
then
 echo "一般"
elif [[ $a -ge 60 && $a -le 69 ]]
then
 echo "合格"
else
 echo "30遍"
fi
else
 echo "报错"
fi

case语句

相当于多分支结构

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值