shell编程(四)—— 运算符

和其他编程语言一样,bash也有多种类型的运算符,本篇对bash的相关运算符做简单介绍。

一、运算符

1.1 算术运算符

常见的算术运算符,如加(+)、减(-)、乘(*)、除(/)、取余(%)、赋值(=)、相等(==)、不相等(!=)。
bash中使用expr 来进行算术运算。如将算术表达式放在方括号之间,需要有空格。

x=15
y=30

val=`expr ${x} + ${y}`
echo "${x} + ${y} = ${val}"

if [[ ${x} != ${y} ]]
then
    echo "${x} != ${y}"
fi

在这里插入图片描述

1.2 关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

常用关系运算符如下

运算符 说明
-eq 检测两个数是否相等
-ne 检测两个数是否不相等,不相等返回 true
-gt 检测左边的数是否大于右边的
-lt 检测左边的数是否小于右边的
-ge 检测左边的数是否大于等于右边的
-le 检测左边的数是否小于等于右边的
x=10
y=30

if [[ ${x} -lt ${y} ]]
then
    echo "${x} -lt ${y}: x 小于 y"
fi

在这里插入图片描述## 1.3 布尔运算符
如下列出常用的布尔运算符

运算符 说明
非运算
-o 或运算,
-a 与运算,&& 也表示与运算
x=10
y=30

if [[ ${x} -lt 20 && ${y} -gt 20 ]]
then
    echo "${x} 小于20 且 ${y}大于20"
fi

if [[ ${x} -lt 20 || ${y} -lt 20 ]]
then
    echo "${x} 小于20 或 ${y}小于20"
fi

if ! [[ ${x} -eq 20 ]]
then
    echo "${x} 不等于20"
fi

在这里插入图片描述

1.4 字符串运算符

常用字符串运算符如下:

运算符 说明
= 检测两个字符串是否相等
!= 检测两个字符串是否不等
-z 检测字符串长度是否为0
-n 检测字符串长度是否不为0
str 检测字符串是否为空
x="xiaoyuzhou"
y=""

if [[ -z ${x} ]]
then
    echo "-z ${x} 字符串长度为0"
else
    echo "-z ${x} 字符串长度不为0"
fi

if [[ -n ${y} ]]
then
    echo "-z ${y} 字符串长度不为0"
else
    echo "-z ${y} 字符串长度为0"
fi

if [[ ${y} ]]
then
    echo "-z ${y} 字符串不为空"
else
    echo "-z ${y} 字符串为空"
fi

在这里插入图片描述

1.5 文件测试运算符

文件测试运算符用于检测文件的各种属性

操作符 说明
-b file 检测文件是否为块设备文件
-c file 检测文件是否是字符设备文件
-d file 检测文件是否是目录
-f file 检测文件是否是普通文件(非目录,非设备文件)
-r file 检测文件是否可读
-w file 检测文件是否可写
-x file 检测文件是否可执行
-s file 检测文件是否为空
-e file 检测文件(或目录)是否存在

相关推荐

  1. shell编程-数组与运算符详解(超详细)

    2024-06-11 00:32:03       50 阅读
  2. Shell学习——Shell运算符

    2024-06-11 00:32:03       47 阅读
  3. Shell编程

    2024-06-11 00:32:03       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-11 00:32:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-11 00:32:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-11 00:32:03       87 阅读
  4. Python语言-面向对象

    2024-06-11 00:32:03       96 阅读

热门阅读

  1. 仓库管理业务在WMS与ERP中如何抉择

    2024-06-11 00:32:03       34 阅读
  2. 【数据结构】图之邻接矩阵代码实现与dfs、bfs

    2024-06-11 00:32:03       30 阅读
  3. 如何使用Python pottery库

    2024-06-11 00:32:03       32 阅读
  4. 动态规划算法

    2024-06-11 00:32:03       39 阅读
  5. 分享: 动图网站

    2024-06-11 00:32:03       33 阅读
  6. 本地部署 RAGFlow

    2024-06-11 00:32:03       37 阅读
  7. RGMII接口--->(013)FPGA实现RGMII接口(十三)

    2024-06-11 00:32:03       31 阅读
  8. 开机自启动脚本配置

    2024-06-11 00:32:03       31 阅读
  9. 本地化平台部署运维事项

    2024-06-11 00:32:03       34 阅读
  10. 软件安全技术【太原理工大学】

    2024-06-11 00:32:03       31 阅读