目录
前言:今天遇到了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