【shell】条件测试
通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结果执行不同的操作。执行条件测试通常会返回"真"或"假",类似执行命令,返回0是真,返回非0是假。
1.条件测试常用的方法
条件测试语法 | 说明 |
---|---|
语法1:test <测试表达式> |
利用test命令进行条,test后有一个空格 |
语法2:[ <测试表达式> ] |
通过单中括号进行,单中括号中的内容前后都有一个空格 |
语法3:[[ <测试表达式> ]] |
通过双中括号进行,双中括号中的内容前后都有一个空格 |
语法4:((<测试表达式>)) |
通过双小括号进行,双小括号中的内容前后无空格 |
特别说明:
注意:推荐使用语法2
&&、||、>、<等操作符可以应用于[[]]中,但是在[]是不能使用,在[]中一般用-a、-o、-gt等替代
2.test条件测试的简单语句和实例
语法:test <测试表达式>
案例一:test命令
[qinys@localhost 20200313]$ test -f a.txt && echo true || echo false
false
语句中涉及的a.txt文件是不存在的,所以输出false,此处条件为真,则执行&&
后的语句,条件为假,则执行||
后的语句
上述逻辑是一个联合逻辑,也可以将上述逻辑拆分开,拆分如下:
[qinys@localhost 20200313]$ test -f a.txt && echo true
[qinys@localhost 20200313]$ test -f a.txt || echo false
false
案例二:test命令中使用-z选项
-z
选项表示:如果测试字符串的长度为0,则表达式成立
[qinys@localhost 20200313]$ test -z "" && echo 1 || echo 0
1
[qinys@localhost 20200313]$ test -z "abc" && echo 1 || echo 0
0
3.[]条件测试语法及实例
语法:[ <测试表达式> ]
中括号内部的两端要有空格,[]与test等价,即test的所有判断选项都可以直接在[]里使用
以下是演示案例:使用[]实现条件测试
[qinys@localhost 20200313]$ [ -f a.txt ] && echo true || echo false
false
此处的条件测试同样可以拆分,拆分后为:
[qinys@localhost 20200313]$ [ -f a.txt ] && echo true
[qinys@localhost 20200313]$ [ -f a.txt ] || echo false
false
4.[[]]条件测试语法及实例
语法:[[ <测试表达式> ]]
以下是演示案例:使用[[]]实现条件测试
[qinys@localhost 20200313]$ [[ -f a.txt ]] && echo true || echo false
false
此处的条件测试同样可以拆分,拆分后为:
[qinys@localhost 20200313]$ [[ -f a.txt ]] && echo true
[qinys@localhost 20200313]$ [[ -f a.txt ]] || echo false
false
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!