test 命令
测试表达式是否成立,若成立返回0,否则返回其他数值
test 条件表达式
或
[ 条件表达式 ] 注意 这种形式[ ] 里面左边和右边都要有空格
[ $a == $b ] && echo y || echo n &&代表成功就运行这个 || 表示错误就运行这个
``
非常重要:::字符串就用==和!=, 数字用底下列表的
-eq 第一个数等于第二个数
-ne 第一个数不等于第二个数
-gt 第一个数大于第二个数
-lt 第一个数小于第二个数
-ge 第一个数大于等于第二个数
-le 第一个数小于等于第二个数
[ 3 -gt 2 -a 3 -gt 1 ] && echo y || echo n -a代表且 需要两边同时都正确 才会判断正确
[ 3 -gt 2 -o 3 -lt 1 ] && echo y || echo n -o代表或 需要至少一边正确 才会判断正确
这个是有顺序的 先判断前面3不小于二 ,找|| 找到第一个|| 是判断3大于1 是正确的 ,再寻找&& 最后输出y
类似还有
判断非空
-z 判断 变量的值,是否为空;
-
变量的值,为空,返回0,为true
-
变量的值,非空,返回1,为false
[ -z "$a" ] 单对中括号变量必须要加双引号
[[ -z $a ]] 双对括号,变量不用加双引号
-n 判断变量的值,是否为空;
-
变量的值,为空,返回1,为false
-
变量的值,非空,返回0,为true
[ -n "$a" ] 单对中括号,变量必须要加双引号
[[ -n $a ]] 双对中括号,变量不用加双引号
但是单纯的输入空格又会倒过来
文件测试
-d 测试是否为目录
-e 测试目录或文件是否存在
-f 测试是否为文件
-L 测试是否为链接文件
-b 测试是否为设备文件
-c 测试是否为字符设备文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试是否设置游客执行权限
-s 测试存在且文件大小为空
if语句结构
单分支结构
if 条件测试操作
then 命令序列
fi