Shell 支持多种运算符,包括:

  • 算术运算符

原生bash不支持简单的数学运算,可以使用 expr,let

  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件运算符

算术运算符

包括加减乘除,取余(%)、赋值(=)、相等(==)、不相等(!=)

#!/bin/bash

## 定义变量,并赋值
var1=`expr + `
var3=$(expr + )
## 打印变量
echo "var1 is: ${var1}"
echo "var3 is: ${var3}" ## 定义变量,并赋值
let var2=+
## 打印变量
echo "var2 is: ${var2}"

说明:

  1. 使用反引号 ` ,在Esc键下面,获取表达式计算结果
  2. 使用$() 获取表达式计算结果
  3. 使用expr :表达式和运算符之间要有空格,必须写成 1 + 2
  4. 使用let: 表达式和运算符之间不能有空格,必须写成 1+2
  5. 乘号(*) 必须使用反斜杠(\) 进行转义
  6. 大括号 {},小括号 (), 大于 >,小于 <, 也需要使用反斜杠(\) 进行转义。如果解析错误,先排查下特殊符号,是否需要转义。

关系运算符

关系运算符只支持数字,不支持字符串(纯数字除外)

-eq : 检测左右两边的数是否相等,相等返回true

-ne : 检测左右两边的数是否不等

-gt : 类似大于

-lt : 类似小于

-ge : 类似大于等于

-le : 类似小于等于

布尔运算符

! : 非运算

-o : 或运算

-a : 与运算

&& : 逻辑的and ,与-a 类似

|| :逻辑的or ,与 -o 类似

字符串运算符

= or ==: 检测左右两边字符串是否相等,相等返回true。  if [ "$a" = "$b" ]  与  if [ "$a" == "$b" ] 等价。

!= : 检测左右两边字符串是否不相等,不相等返回true

> or < :使用双括号或者转义。  if [ "$a" \> "$b" ]  或者  if [[ "$a" > "$b" ]]

-z : 检测空串,长度为0时 ,返回true

-n :检测非空串,长度不为0时,返回true

文件运算符

-f file : 检测文件是否是 普通文件(既不是目录,也不是设备文件)

-d file :检测文件是否是 目录

-r file :检测文件是否可读

-w file :检测文件是否可写

-x file :检测文件是否可执行

-s file :检测文件是否为空

-e file :检测文件(包括目录)是否存在

Shell 运算符 if的更多相关文章

  1. shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

    shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有 ...

  2. shell运算符与流程控制-2

    1.shell运算符 1.1.算数运算符 原生的bash不支持算数运算,可以通过其它方式实现例如expr. `expr a + b` #a b为数字,和运算符之间要有空格 #``不是单引号,为键盘上E ...

  3. Linux学习笔记 - Shell 运算符篇

    Shell 运算符分类 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 算数运算符 首先,使用 shell 算数运算符是,需要 ...

  4. shell 运算符

    shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果. 一.逻辑运算符 逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测 ...

  5. Linux Shell 运算符

    Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 ...

  6. shell运算符

    原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...

  7. 三:shell运算符

    1:declare命令 shell默认是字符串型        如果需要加减乘除,需要定义为整型declare命令:改变默认变量的类型decalre [+/-] [选项]  变量名      -给变量 ...

  8. Linux shell运算符

    双引号 --使用双引号可以引用除了字符$,`(单反号),\(反斜杠)外的任意字符或者字符串 --echo "参数的个数是$#" 单引号 --单引号与双引号类似,不同的是shell会 ...

  9. 【Shell脚本学习10】Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

    Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最 ...

随机推荐

  1. 常用的SQLAlchemy列选项

    常用的SQLAlchemy列选项 https://blog.csdn.net/weixin_41896508/article/details/80772238 选项名 说明 primary_key 如 ...

  2. 原!!mysql,几十万条数据中随机抽取1万以内的数据

    想了几种方法: 1.将所有符合条件的对象集合都查出来,在代码里做随机. 2.先查出所有符合条件的id,再代码随机需要抽查数量的id,再 到数据库 中 in. 3.利用order by rand() l ...

  3. 字符串 (string)与字节数组(byte[])之间的转换

    string str = "abc" //字符串转成编码为GB2312的byte[] byte[] pData =System.Text.Encoding.GetEncoding( ...

  4. 关于CSDN 2016博客之星评选活动的感触

    一.前言 想想去年的这个时候还接到CSDN邀请,参加了"CSDN 2015博客之星"的评选活动, CSDN2015博客之星评选之拉票环节 而今年却没有接到CSDN的邀请,内心有点小 ...

  5. sql server等待类型

    sql server 各种等待类型-转 sql server各个等待类型及解决办法:https://www.sqlskills.com/help/waits/writelog/其他等待类型的描述和解决 ...

  6. mysql 内置功能 函数 date_format函数

    创建数据库db12 create database db12 charset=utf8; use db12; 准备表和记录 CREATE TABLE blog ( id INT PRIMARY KEY ...

  7. 简明python教程

    linux查询python版本:python -V linux进入python:python 退出python:CTRL+D 使用源文件:helloworld.py 运行这个程序:python hel ...

  8. Flash本地共享对象 SharedObject

    以下内容是对网上一些资料的总结 Flex SharedObject 介绍(转自http://www.eb163.com/club/thread-3235-1-1.html): Flash的本地共享对象 ...

  9. python16_day03【集合、编码、函数、递归、内置函数】

    一.集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 #创建: s = {3,5,9,10} # ...

  10. BLOG总结

    1.登录:http://www.cnblogs.com/shaojiafeng/p/7868195.html 2.注册 - urls -前端页面中写 username ,password,passwo ...