目录

  • 一、test命令
  • 1、格式
  • 2、实例操作
  • 二、文件测试
  • 1、格式:
  • 2、常用的测试操作符
  • 3、实例操作
  • 三、整数值比较
  • 1、格式
  • 2、.常用的测试操作符
  • 3、实例操作
  • 3.1 结合逻辑与进行查询当前目录下的文件数目
  • 3.2 查看系统内存是否低于或者高于1024M,如果满足条件则提示
  • 四、字符串比较
  • 1、格式
  • 2.常用的测试操作符
  • 3、实例操作
  • 五、逻辑测试(三元运算符)
  • 1、格式
  • 2、常用的测试操作符
  • 3、实例操作
  • 六、if语句
  • 1、 单分支结构
  • 1.1 格式
  • 1.2 原理图:
  • 2、双分支结构
  • 2.1 格式
  • 2.2 原理图:
  • 2.3实例操作
  • 3、多分支结构
  • 3.1 格式
  • 3.2 原理图:
  • 3.3 实例操作
  • 七、case语句结构
  • 1.格式:
  • 2、 实例操作一
  • 3、实例操作二
  • 八、浮点数的运算
  • 1、bc的基本用法
  • 2、awk的基本用法
  • 九、变量互换

一、test命令

1、格式

测试表达式是否成立,若成立返回0,否则返回其他数值。

格式1:    test 条件表达式
格式2:    [ 条件表达式 ]

2、实例操作

shell while检测MySQL是否启动成功 shell测试语句_操作符

二、文件测试

1、格式:

操作符 文件名或者目录名

2、常用的测试操作符

-d∶ 测试是否为目录(Directory)
-e∶ 测试目录或文件是否存在(Exist)
-f∶ 测试是否为文件(File)
-r∶ 测试当前用户是否有权限读取(Read)
-w∶ 测试当前用户是否有权限写入(Write)
-x∶测试当前用户是否有权限执行(eXcute)
-L∶测试是否为软链接文件

3、实例操作

shell while检测MySQL是否启动成功 shell测试语句_操作符_02

三、整数值比较

1、格式

[ 整数1 操作符 整数2 ]

2、.常用的测试操作符

-eq∶ 等于(Equal)
-ne∶ 不等于(Not Equal)
-gt∶ 大于(Greater Than)
-lt∶ 小于(Lesser Than)
-le∶ 小于或等于(Lesser or Equal)·
-ge∶ 大于或等于(Greater or Equal)

3、实例操作

3.1 结合逻辑与进行查询当前目录下的文件数目

shell while检测MySQL是否启动成功 shell测试语句_字符串_03


  

3.2 查看系统内存是否低于或者高于1024M,如果满足条件则提示

shell while检测MySQL是否启动成功 shell测试语句_操作符_04

四、字符串比较

1、格式

[ 字符串1 = 字符串2 ]           #判断是否相等
[ 字符串1 != 字符串2 ]         #判断是否不等
[ -z 字符串 ]                  #是否空值
[ -n 字符串 ]                  # 字符集是否存在

2.常用的测试操作符

  • =∶ 字符串内容相同
  • !=∶ 字符串内容不同,!号表示相反的意思
  • z∶字符串内容为空

3、实例操作

shell while检测MySQL是否启动成功 shell测试语句_字符串_05


  

五、逻辑测试(三元运算符)

1、格式

格式1∶    [ 表达式1 ] 操作符 [ 表达式2 ]…
格式2∶    命令1 操作符 命令2…

2、常用的测试操作符

  • -a或&&∶ 逻辑与,"而且"的意思
  • -o或||∶ 逻辑或,"或者"的意思
  • !∶逻辑否

3、实例操作

#!/bin/bash
#Ping test
 
ping -c 3  -W 2 $1 &> /dev/null && echo "$1 is online!" || echo "$1 is offline!"

shell while检测MySQL是否启动成功 shell测试语句_字符串_06

六、if语句

1、 单分支结构

如果只有一个判断式要进行,那么我们可以使用单分支的if语句

1.1 格式

if [ 条件判断式 ]; then
    当条件判断成立时,可以进行的命令工作内容
fi                  #这里将if反过来写,结束if语句的意思

1.2 原理图:

shell while检测MySQL是否启动成功 shell测试语句_字符串_07

  

  

2、双分支结构

在同一个数据的判断中,如果该数据需要进行两种不同的判断,我们就需要双分支if语句了:

2.1 格式

if [ 条件判断式 ]; then
    当条件判断成立时,可以进行的命令工作内容
else   
    当条件判断不成立时,可以进行的命令工作内容
fi

2.2 原理图:

shell while检测MySQL是否启动成功 shell测试语句_操作符_08

   

2.3实例操作

#!/bin/bash
#Shut down httpd service
 
netstat -natp | grep :80 &> /dev/null
 
if [ $? -eq 0 ];then
   echo "httpd 服务正常运行!"
else
   echo "httpd 服务未开启,正在开启服务......"
   systemctl start httpd && echo "httpd 服务启动成功"
fi

shell while检测MySQL是否启动成功 shell测试语句_字符串_09

3、多分支结构

如果数据需要进行多种不同的判断,则可以使用多分支结构

3.1 格式

if [ 条件判断式 ]; then
    当条件判断成立时,可以进行的命令工作内容
elif [ 条件判断式二 ]; then
    当条件判断成立时,可以进行的命令工作内容
else   
    当上面的条件判断都不成立时,可以进行的命令工作内容
fi

3.2 原理图:

shell while检测MySQL是否启动成功 shell测试语句_操作符_10

  

3.3 实例操作

shell while检测MySQL是否启动成功 shell测试语句_操作符_11

七、case语句结构

1.格式:

case 变量名称 in
“第一个变量内容”
    程序段
    ;;
“第二个变量内容”
    程序段
    ;;
*)
    不包含第一个变量内容与第二个变量内容的其他程序执行段
    默认程序段
    ;;
esac

2、 实例操作一

#!/bin/bash
#Determine grades and scores
 
read -p "请输入你的分数(0-100):" a
 
[ $score -ge 90 -a $score -le 100 ] && b="great"
[ $score -ge 70 -a $score -le 89 ] && b="medium"
[ $score -ge 60 -a $score -le 69 ] && b="pass"
[ $score -lt 60 ] && a="fail"
 
case $b in
great)
   echo "优秀"
;;
medium)
   echo "中等"
;;
pass)
   echo "及格"
;;
fail)
   echo "不及格"
;;
*)
  echo "输入有误"
esac

 

shell while检测MySQL是否启动成功 shell测试语句_操作符_12

3、实例操作二

#!/bin/bash
read -p "请输入一个字符:" a
 
case "$a" in
[0-9])
    echo "你输入的是字母"
;;
[a-z]|[A-Z])
   echo "你输入的是数字"
;;
*)
   echo "你输入的是其他字符"
esac

  

shell while检测MySQL是否启动成功 shell测试语句_操作符_13

八、浮点数的运算

bash不支持浮点数运算(小数运算),如果需要进行浮点数运算,则需要bc、awk的帮助

1、bc的基本用法

法一:直接使用bc

shell while检测MySQL是否启动成功 shell测试语句_操作符_14

法二:在脚本中使用bc

shell while检测MySQL是否启动成功 shell测试语句_操作符_15

2、awk的基本用法

awk是linux中处理文本的强大工具,或者说是一种专门处理字符串的语言,它有自己的编码格式。awk的强大之处还在于能生成强大的格式化报告。
awk的命令格式如下:

shell while检测MySQL是否启动成功 shell测试语句_操作符_16

awk -F #    -F相当于内置变量FS, 指定分割字符

shell while检测MySQL是否启动成功 shell测试语句_操作符_17

九、变量互换

参加一个临时变量即可替换

shell while检测MySQL是否启动成功 shell测试语句_操作符_18