Shell语句

Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。

一、条件语句

(1)test命令
格式一:test 条件表达式
格式二:[ 条件表达式 ]
(2)文件测试
格式:[ 操作符 文件或目录 ]
常用的操作符:
-e:测试目录或文件是否存在(Exist)。
-d:测试是否为目录(Directory)。
-f:测试是否为文件(File)。
-r:测试当前用户是否有权限读取(Read)。
-w:测试当前用户是否有权限写入(Write)。
-x:测试是否设置有可执行(Excute)权限。

shell 判断Java 服务是否正常运行 shell判断命令结果_hg

(3)整数值比较
格式:[ 整数变量1 操作符 整数变量2 ]
常用的操作符:
-eq:等于					
-ne:不等于					
-gt:大于				
-lt:小于					
-le:小于等于
-ge:大于等于

shell 判断Java 服务是否正常运行 shell判断命令结果_操作符_02

(4)字符串比较
格式1:
[  字符串1  =  字符串2 ] 或 [  字符串1  ==  字符串2 ] 
[  字符串1  !=  字符串2 ]

格式2:
[  -z  字符串 ]		#检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串
[  -n  字符串 ]		#检查是否有字符串存在

shell 判断Java 服务是否正常运行 shell判断命令结果_字符串_03

(5)逻辑测试
格式1:[  表达式1  ]  操作符  [  表达式2  ]  / [[ 表达式1 操作符 表达式2 ]]
格式2:命令1  操作符  命令2

常用的操作符:
-a或&& :逻辑与,“而且”的意思,前后条件需都成立
-o或|| :逻辑或,“或者”的意思,只需前后条件中一个成立
! :逻辑否

shell 判断Java 服务是否正常运行 shell判断命令结果_操作符_04

二、if语句

(1)单分支 if 语句

shell 判断Java 服务是否正常运行 shell判断命令结果_操作符_05

if 条件测试操作
then
命令序列
fi

shell 判断Java 服务是否正常运行 shell判断命令结果_字符串_06

(2)双分支 if 语句

shell 判断Java 服务是否正常运行 shell判断命令结果_字符串_07

if 条件测试操作
then
命令序列 1
else
命令序列 2
fi

例子:

#!/bin/bash

read -p "输入性别" a
if [ $a = "男"  ]
then
        echo "$a 组"
else
        echo "女 组"
fi

shell 判断Java 服务是否正常运行 shell判断命令结果_操作符_08

(3)多分支 if 语句

shell 判断Java 服务是否正常运行 shell判断命令结果_操作符_09

if 条件测试操作 1
then
命令序列 1
elif 条件测试操作 2
then
命令序列 2
else
命令序列 3
fi

例子:

#!/bin/bash
read -p "请输入您的分数(0-100): " z
if [ $z -ge 85 ] && [ $z -le 100 ]
then
        echo "$z 分,优秀!"
elif [ $z -ge 70 ] && [ $z -le 84 ]
then
        echo "$z 分,合格!"
else
        echo "$z 分,不合格!"
fi

shell 判断Java 服务是否正常运行 shell判断命令结果_hg_10

三、case语句

case 变量值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
* )
默认命令序列
esac

例子:

#!/bin/bash
read -p "请输入您的分数(0-100): " w
[[ $w -ge 85 && $w -le 100 ]] && a="yx"
[[ $w -ge 70 && $w -lt 85 ]] && a="hg"
[[ $w -ge 0 && $w -lt 70 ]] && a="bhg"
case $a in
yx)
        echo " 优秀!"
;;
hg)
        echo "合格!"
;;
bhg)
        echo "不合格!"
;;
*)
        echo "输入有误!"
esac

shell 判断Java 服务是否正常运行 shell判断命令结果_字符串_11