文件测试
文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或
者判断文件是否存在,是否可读、可写、可执行等。
条件测试格式
条件测试语句 | 解释 |
---|---|
test 测试表达式 | 利用test命令进行条件测试表达式的方法 |
[ 测试表达式 ] | 通过[ ]进行条件测试表达式的方法,和test命 令用法相同 |
[[ 测试表达式 ]] | 通过[[ ]]进行条件测试表达式的方法,比test和[ ]更新 |
(( 测试表达式 )) | 通过(())进行条件测试表达式的方法,一般用于if语句里 |
注:(())不能用于文件测试,文件测试一般常用的是 []
不分主次,按顺序逐个判断,判断的是前面的结果
整数值比较
整数值比较指的是根据给定的两个整数值,判断第一个数和第二个数的关系,比如大于,等于,小于第二个数,实际应用非常广泛。
例如用来判断已登录用户数量,开启进程数,磁盘使用率是否超标,以及软件版本号是否符合要求。
选项 | 解释 |
---|---|
-eq | 第一个数等于第二个数 |
-ne | 第一个数不等于第二个数 |
-gt | 第一个数大于第二个数 |
-lt | 第一个数小于第二个数 |
-le | 第一个数小于或等于第二个数 |
-ge | 第一个数大于或等于第二个数 |
逻辑测试
&& 如果前面是正确的,执行
|| 如果前面是错误的,执行
; 挨个儿执行
//
[root@localhost ~]# test a == b
[root@localhost ~]# echo $?
1
[root@localhost ~]# test a != b
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ a == b ]
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ a != b ]
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ a == b ] && echo y || echo n
n
[root@localhost ~]# [ a != b ] && echo y || echo n
y
[root@localhost ~]# [ a != b ] && echo y
y
[root@localhost ~]# [ a == b ] && echo y
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ a == b ];echo y
y
[root@localhost ~]# [ a != b ];echo y
y;
if 条件语句
单分支
只有在“条件成立”时,才会执行
//
if [条件判断];then
command
fi
#或
if [条件判断]
then
command
fiAn highlighted block
var foo = 'bar';
双分支
针对“条件成立”“条件不成立”两种情况,分别执行相应的代码
//
if 条件判断
then
命令
else
命令
fi
#或
if 条件判断;then
命令
else
命令
fi;
多分支
嵌套使用,多次判断
//
if 条件测试操作
then
命令序列
elif 条件测试操作
then
命令序列
else
命令序列
fi ;
case 条件语句
case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case需要一个esac(就是case反过来)作为结束标记,每个case分支用右圆括号,用两个分号表示break,其中“;;”不是跳出循环,是不在去匹配下面的模式。
//
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
默认命令序列
esac
;