Shell运算符if
Shell ⽀持多种运算符,包括:
算术运算符
原⽣bash不⽀持简单的数学运算,可以使⽤ expr,let
关系运算符
布尔运算符
字符串运算符
⽂件运算符
算术运算符
包括加减乘除,取余(%)、赋值(=)、相等(==)、不相等(!=)
#!/bin/bash
## 定义变量,并赋值
var1=`expr1 + 2`
var3=$(expr1 + 2)
## 打印变量
echo"var1 is: ${var1}"
echo"var3 is: ${var3}"
## 定义变量,并赋值
let var2=1+2
## 打印变量
echo"var2 is: ${var2}"
说明:
1. 使⽤反引号 ` ,在Esc键下⾯,获取表达式计算结果
2. 使⽤$() 获取表达式计算结果
3. 使⽤expr :表达式和运算符之间要有空格,必须写成 1 + 2shell脚本写加减乘除运算
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 :检测⽂件(包括⽬录)是否存在
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论