目录
前言:今天遇到了case,有些遗忘了,所以重新温习shell脚本里的tast、if、case命令
1.1、test命令
常见的测试操作符
| 常见的测试操作符 | 含义 |
| -d | 测试是否为目录(directory) |
| -e | 测试目录或文件是否存在(Exist) |
| -f | 测试是否为文件(File) |
| -r | 测试当前用户是否有权限读取(Read) |
| -w | 测试当前用户是否有权限写入(Write) |
| -x | 测试当前用户是否有权限执行(eXcute) |
| -b | 测试是否是设备文件 |
| -c | 测试是否为字符设备文件 |
| -s | 测试存在且文件大小为空 |
| -L | 测试是否为链接文件 |
两种表示方法示例

测试/home是否为目录返回值0目录存在,1为不存在。
1.2、整数值比较
常见测试操作符:
| 操作符 | 含义 |
|---|---|
| -eq | 等于(Equal) |
| -ne | 不等于(Not Equal) |
| -lt | 小于(Leser Than) |
| -gt | 大于(Greater Than) |
| -le | 小于或等于(Lesser or Equal) |
| -ge | 大于或等于(Greater or Equal) |

当前就一个用户,当用户小于5个时会提示用户太少
1.3、字符串比较
| 操作符 | 含义 |
|---|---|
| = | 字符串内容相同 |
| != | 字符串内容不同,!号表示相反的意思 |
| -z | 字符串内容为空 |
| -n | 检查是否有字符串存在 |


1.4、逻辑测试
常用的测试操作符
| -a或&& | 逻辑与,而且的意思 |
|---|---|
| -o或▕▕ | 逻辑或,或者的意思 |
| ! | 逻辑否 |

目前/etc/passwd文件不可以操作,yu当需要满足条件passwd为文件或可操作时则语句成输出nice,当需要同时满足条件passwd为文件且可以操作是语句不成立输出1.
2.、if命令
2.1、if单分支


2.2、if双分支

本地ip为192.168.1.6,测试本地ip是否存活,-c 2是ping的次数,-i是执行ping命令的时间

2.3、if多分支

判定是文件还是目录
2.4、if嵌套
判断httpd服务有没有启动

3、case
case 语句可以使脚本程序的结构更加清晰、层次分明,常用于服务的启动、重启、停止的脚本,有的服务不提供这种控制脚本,需要用case语句编写
case 语句主要适用于以下情况: 某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。这种情况与多分支的 if 语句非常相似,只不过 if 语句需要判断多个 不同的条件,而
case 语句只是判断一个变量的不同取值。
apache启动服务

总结
test测试条件
if的分支
case
Shell脚本:test, if, case详解及实战应用
本文介绍了shell脚本中test命令用于条件测试,if语句实现分支逻辑,case结构进行多值判断,涵盖整数、字符串比较、逻辑运算和实际应用场景,如服务状态检查和配置文件操作。
1095

被折叠的 条评论
为什么被折叠?



