Test命令
测试表达式是否成立,若成立时返回0,否则返回其他数值
格式1:test 条件表达式
格式2:[ 条件表达sh]
条件测试
[操作符 文件或目录]
常用的测试操作符
-d: 测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-f :测试是否为文件(File)
-r:测试当前用户是否拥有读取权限(Read)
-w:测试用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
整数值比较
[整数1 操作符 整数2]
常用的测试操作符
-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)
字符串比较
作用:用于字符串类型比较
格式一
语法:[ 字符串1=字符串2 ]
语法:[ 字符串1 !=字符串2]
格式二
语法:[ -z 字符串]
常用的测试操作符
=:字符串内容相同
!=:字符串内容不同,!表示相反的意思
-z=:字符串内容为空
逻辑测试
格式一: [表达式1]操作符[表达式2]....
格式二:命令1 操作符 命令2
常用的测试操作符
-a或&&:逻辑与,“而且”的意思
-o或||:逻辑或,“或者”的意思
!:逻辑否
if语句的结构
作用:根据测试结果的成立,不成立分别执行不同的操作
单分支if 语句
语法:
if [ 条件表达式 ] then
条件成立执行的内容
fi
示例
[root@192 ~]# vi kgc.sh
if [ ! -d "/media/cdrom" ]
then
mkdir /media/cdrom
fi
[root@192 ~]#chmod +x kgc.sh
[root@192 ~]./kgc.sh
双分支结构
语法
if [ 条件表达式 ] then
条件成立执行的内容
else
条件不成立执行的内容
fi
例子
[root@192 ~]#vi kgc.sh
if [ ! -d "/media/cdrom" ]
then
mkdir /media/cdrom
else
echo "目录已存在不需要创建"
fi
[root@192 ~]#chmod +x kgc.sh
[root@192 ~]#./kgc.sh
[root@192 ~]#rm -rf /media/chmod/
[root@192 ~]#./kgc.sh
case分支语句
作用:主要用于某个变量存在多种取值,只需要其一,每种不同的值都有不同的执行结果
语法:
case 变量值 in
值1)
执行的命令1
;;
值2)
执行的命令2
;;
*)
执行的命令3
;;
esca
例子:
[root@192 ~]#vi kgc.sh
#!/bin/bash
case "$1" in
start)
echo "正在启动服务。。。。。"
sleep 3
;;
stop)
echo "正在关闭服务"
;;
restart)
echo "正在重启服务"
sleep 3
echo "服务重启成功"
;;
*)
echo "Usage: $0 <start|stop|restart>"
esac