条件测试:判断某需求是否满足,需要由测试机制来实现,专用的测试表达式需要由测试命令辅助完成测试过程,实现评估布尔声明,以便在条件性环境下进行执行。
若真,则状态码变量$?返回0
若假,则状态码变量$?返回1
1.语法1:test <测试表达式> 说明:test命令和<测试表达式>之间至少有一个空格
在shell中,大于用 -gt 表示,小于用 -lt 表示,大于或等于用 -ge 表示,小于或等于用 -le表示 ,不相等用-ne 表示
语法2:[<测试表达式>] 说明:该方法和test命令的用法一样,[]的两边和内容之间至少有一个空格
语法3:[[ <测试表达式> ]] 说明:比test和[]更新的语法格式。[[]]的边界和内容之间至少有一个空格。[[]]中可以使用通配符等进行模式匹配
语法4:((<测试表达式>)) 说明:一般用于if语句里,双小括号两端不需要有空格,测试对象只能是整数
2.变量测试
-a/-e文件 文件是否存在
-d文件 文件存在且为目录则为真,即测试表达式成立
-f文件 文件存在且为普通文件则为真,即测试表达式成立
-r文件 文件存在且可读为真
-w文件 文件存在且可写为真
-x文件 文件存在且可执行则为真
3.整数测试表达式
4.逻辑操作符
5.关于( )与{ }
( )和 { }都可以将多个命令组合再一次,批量执行,{ } 里的内容需要与两侧用空格隔开并在命令结尾加上;
( )会开启子shell,并且list中变量赋值及内部命令执行后,将不再影响后续的环境
{ } 不会开启子shell,在当前shell中运行,会影响当前shell环境