文章目录
一.条件判断
要使shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。例如:当备份目录不存在时,能够自动创建;当源码编译程序时,若配置失败则不再继续安装等
1.文件测试–test
使用专门的测试工具一test 命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)。
语法格式:
格式1: test 操作符 条件表达式
格式2: [ 操作符 条件表达式 ] ps:注意中括号和表达式中间需要隔至少一个空格
常用操作符:
操作符 | 描述 |
---|---|
-d | 判断是否为目录 |
-f | 判断是否为文件 |
-e | 判断是否为目录或文件 |
-r | 判断是否有读权限 |
-w | 判断是否有写权限 |
-x | 判断是否有执行权限 |
-L | 判断是否为链接文件 |
-b | 判断是否为设备文件 |
-c | 判断是否为字符设备 |
-s | 判断文件大小是否为空 |
Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。
在shell脚本中,我们常使用[]进行判断
2.整数值比较
在shell脚本中数值大小比较不使用><=等运算比较符
整数值比较格式:[ 整数1 操作符 整数2 ]
测试操作符:
操作符 | 描述 |
---|---|
-eq(equal) | 等于 |
-nq (not equal) | 不等于 |
-lt (lesser than) | 小于 |
-le (lesser or equal) | 小于或等于 |
-gt (greater than) | 大于 |
-ge(greater or equal) | 大于或等于 |
3.字符串比较
格式1:[ 字符串1 = 字符串2 ]
格式2:[ -z 字符串 ]