Shell 运算符 if
Shell 支持多种运算符,包括:
- 算术运算符
原生bash不支持简单的数学运算,可以使用 expr,let
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件运算符
算术运算符
包括加减乘除,取余(%)、赋值(=)、相等(==)、不相等(!=)
#!/bin/bash ## 定义变量,并赋值
var1=`expr + `
var3=$(expr + )
## 打印变量
echo "var1 is: ${var1}"
echo "var3 is: ${var3}" ## 定义变量,并赋值
let var2=+
## 打印变量
echo "var2 is: ${var2}"
说明:
- 使用反引号 ` ,在Esc键下面,获取表达式计算结果
- 使用$() 获取表达式计算结果
- 使用expr :表达式和运算符之间要有空格,必须写成 1 + 2
- 使用let: 表达式和运算符之间不能有空格,必须写成 1+2
- 乘号(*) 必须使用反斜杠(\) 进行转义
- 大括号 {},小括号 (), 大于 >,小于 <, 也需要使用反斜杠(\) 进行转义。如果解析错误,先排查下特殊符号,是否需要转义。
关系运算符
关系运算符只支持数字,不支持字符串(纯数字除外)
-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的更多相关文章
- shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符
shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有 ...
- shell运算符与流程控制-2
1.shell运算符 1.1.算数运算符 原生的bash不支持算数运算,可以通过其它方式实现例如expr. `expr a + b` #a b为数字,和运算符之间要有空格 #``不是单引号,为键盘上E ...
- Linux学习笔记 - Shell 运算符篇
Shell 运算符分类 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 算数运算符 首先,使用 shell 算数运算符是,需要 ...
- shell 运算符
shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果. 一.逻辑运算符 逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测 ...
- Linux Shell 运算符
Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 ...
- shell运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...
- 三:shell运算符
1:declare命令 shell默认是字符串型 如果需要加减乘除,需要定义为整型declare命令:改变默认变量的类型decalre [+/-] [选项] 变量名 -给变量 ...
- Linux shell运算符
双引号 --使用双引号可以引用除了字符$,`(单反号),\(反斜杠)外的任意字符或者字符串 --echo "参数的个数是$#" 单引号 --单引号与双引号类似,不同的是shell会 ...
- 【Shell脚本学习10】Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最 ...
随机推荐
- ubuntu/debian gpg error no_pubkey 解决方法
GPG error: http://ppa.launchpad.net precise Release: The following signatures couldn’t be verified b ...
- jq封装选项卡写法
jq普通选项卡写法: var tabTag=$('#tabon'); var tabon=tabTag.find('li');//菜单栏 var tabCon=$(".hidden" ...
- rest_framework之访问频率控制
一 自定义频率控制类 class MyThrottle(): visitor_dic = {} def __init__(self): self.history = None def allow_r ...
- GIT学习笔记(4):远程分支
GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓 ...
- Python框架之Tornado(请求)
概述 本篇就来详细介绍tornado服务器(socket服务端)是如何接收用户请求数据以及如果根据用户请求的URL处理并返回数据,也就是上图的3系列所有步骤,如上图[start]是一个死循环,其中利用 ...
- The 2018 ACM-ICPC上海大都会赛 J Beautiful Numbers (数位DP)
题意:求小于等于N且能被自己所有位上数之和整除的数的个数. 分析:裸的数位dp.用一个三位数组dp[i][j][k]记录:第i位,之前数位之和为j,对某个mod余数为k的状态下满足条件的个数.这里mo ...
- Lambda加自定义比较器实现两个列表的合并
一次项目有这样的需求,本地存储了json数据,可以转化为对应的List列表,现在需要更新,从服务器那里获取最新的数据更改.总的来说就是本地有个List表,如果数据需要更新,则会向服务器发送请求来获取需 ...
- python 课堂笔记-购物车
# Author:leon production_list = [ ('iphone',5800), ('mac pro', 9800), ('bike', 800), ('watch', 10600 ...
- dojo 代码调试
安装 Firebug 使用firedug
- Linux中top和free命令(6/15)
top:命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表. 该命令可以按CPU使用.内存使用和执行时间对任务进行排序: 而且该命令的很多特性都可以通过交互式命令或者在个 ...