xshell脚本之条件语句
1、test命令:
如果test命令中列出的条件成立,test命令就会退出并返回状态码0,
如果条件不成立,test命令就会退出并返回非零的退出状态码,这使得if-then语句不会再被执行
格式:
格式1: test 条件表达式 格式2: [ 条件表达式 ]
常用操作符 | 说明 |
-d | 测试是否为目录 |
-e | 测试目录和文件是否存在 |
-f | 测试是否为文件 |
-r | 测试当前用户是否有读权限 |
-w | 测试当前用户是否有写权限 |
-x | 测试当前用户是否有执行权限 |
2、整数值比较:
格式:
[ 整数1 操作符 整数2 ]
常用操作符 | 说明 |
-eq | 等于 |
-ne | 不等于 |
-lt | 小于 |
-gt | 大于 |
-le | 小于或等于 |
-ge |
大于或等于 |
3、字符串比较:
格式:
[ 字符串1 = 字符串2 ] 判断是否相等 [ 字符串1 != 字符串2 ] 判断是否不等
常用操作符 | 说明 |
= | 字符串内容相同 |
!= | 字符串内容不同 |
-z | 字符串内容为空 |
-n |
检查是否有字符串存在 |
4、逻辑测试:
格式:
格式1∶ [ 表达式1 ] 操作符 [ 表达式2 ]… 格式2∶ 命令1 操作符 命令2…
常用操作符 | 说明 |
-a或&& | 逻辑与,而且的意思 |
-o或▕▕ | 逻辑或,或者的意思 |
! | 逻辑否 |
5、if语句:
a)单分支结构
格式:
if [ 条件判断式 ]; than 当条件判断成立时,可以进行的命令工作内容 fi 这里将if反过来写,结束if语句的意思
b)双分支结构:
格式:
if [ 条件判断式 ]; than 当条件判断成立时,可以进行的命令工作内容 else 当条件判断不成立时,可以进行的命令工作内容 fi
c)多分支结构:
格式:
if [ 条件判断式 ]; than 当条件判断成立时,可以进行的命令工作内容 elif [ 条件判断式二 ]; than 当条件判断成立时,可以进行的命令工作内容 else 当上面的条件判断都不成立时,可以进行的命令工作内容 fi
6、case语句:
格式:
case 变量名称 in “第一个变量内容” 程序段 ;; “第二个变量内容” 程序段 ;; *) 不包含第一个变量内容与第二个变量内容的其他程序执行段 默认程序段 ;; esac
case语句注意事项:
- case行首必须以单词“in”,每一模式必须以单个右括号")"结束
- 双分号";;"表示命令序列的结束
- 模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以使用竖杠|表示或,比如a|b