if语句结构:
if 条件测试命令
then
指令1
else
指令2
if
先要通过条件测试命令,当命令的测试值为0的时候("$?"值为0的时候,说明上一条命令正确的被执行出来了。当它的值为1-255中任意一个数字时,说明上一条命令没有被正确执行出来)继续执行then后面的指令1(如果后边没有其他指令的话直接到if结束)如果指令1的测试命令状态不为0,继续执行指令2,直到if结束。
**
举例:
创建目录,在shell脚本执行后出现提示“请输入要创建的目录:”提示用户输入要创建的目录路径,并判断所输入的目录是否存在,若存在的话提示:"** 目录已经存在请不要重复创建",若不存在,创建该目录并提示“成功创建**目录”
如果重复创建就会出现提示
常用的文件状态测试操作符:
-f | 测试是否为文件 |
---|---|
-d | 测试是否为目录 |
-e | 测试文件或目录是否存在 |
-r | 测试当前用户是否有读取权限 |
-w | 测试当前用户是否有写入权限 |
-x | 测试当前用户是否有执行权限 |
-L | 测试是否为符号链接文件 |
常用整数值比较操作符:
-eq | 等于 |
---|---|
-ne | 不等于 |
-gt | 大于 |
-lt | 小于 |
-le | 小于或等于 |
-ge | 大于或等于 |
字符串比较:
= | 匹配 |
---|---|
!= | 不匹配 |
-z | 检查字符串是否为空 |
逻辑测试操作符:
-a | 逻辑与 |
---|---|
-o | 逻辑或 |
!: | 逻辑非 |
&&(逻辑与) | 前面的命令执行成功之后接着执行逻辑与后边的命令 |