linux之shell常用运算符

一、声明

本文章为学习笔记,转载请标明文章末尾的参考博文链接。

二、简介

每种变成语言都有自己的运算符,shell也是。shell的运算符和别的变成语言基本一样,只是在细节上有些不同。

三、shell支持的运算符如下

1.算数运算符

原生bash不支持简单的数学运算,有两种方式可以实现数学运算。
1.使用其他命令,例如awk和expr、let。
let用法:let a=1+2
expr用法:a=`expr 1 + 2`
注意:1 + 2 中间需要有空格,完整的表达式需要被“包含,注意这个字符不是常用的单引号,在Esc键下边。
2.使用$[],将数学运算符写到$[]里面,即会先对中括号里面的内容进行数学运算。
用法a=$[1+1]

shell支持的算数运算符如下:
+ 加法
示例:let a=1+20
示例:`expr 1 + 20`
示例:echo $[1 + 20]

– 减法
示例:let a=1-20
示例:`expr 1 – 20`
示例:echo $[1 – 20]

– 乘法
示例:let a=120
示例:`expr 1 * 20`
对于expr,使用
前面必须有\
示例:echo $[1 * 20]

/ 除法
示例:let a=1/20
示例:`expr 1 / 20`
示例:echo $[1 / 20]

% 取余
示例:let a=1%20
示例:`expr 1 % 20`
示例:echo $[1 %20]

= 赋值
示例:a=1;b=2

== 相等 比较两个数字,相同返回true,不相同返回false。
示例:[ $a == $b ]

!= 不相等 比较两个数字,不相同返回true,相同返回false。
示例:[ $a != $b ]


2.关系运算符

-eq 检测两个数是否相等,相等返回true,不相等返回false。 示例:

#!/bin/bash
if [ 20 -eq 30 ];then
  echo true
else
  echo  false
fi

返回结果:flase

-ne 检测两个数是否相等,不相等返回true,相等返回false。 示例:

#!/bin/bash
if [ 20 -ne 30 ];then
  echo  true
else
  echo  false
fi

返回结果:true

-gt 检测左边的数是否大于右边的,如果大于,返回true;如果小于,返回false。 示例:

#!/bin/bash
if [ 20 -gt 30 ];then
  echo  true
else
  echo  false
fi

返回结果:true

-lt 检测左边的数是否小于右边的,如果小于,返回true;如果大于,返回false。 示例:

#!/bin/bash
if [ 20 -lt 30 ];then
  echo  true
else
  echo  false
fi

返回结果:true

-ge 检测左边的数是否大于等于右边的,如果是,返回true,如果不是,返回false。 示例:

#!/bin/bash
if [ 20 -ge 30 ];then
  echo  true
else
  echo  false
fi

返回结果:flase

-le 检测左边的书是否小于等于右边的,如果是,返回true,如果不是返回false。 示例:

#!/bin/bash
if [ 20 -le 30 ];then
  echo  true
else
  echo  false
fi

返回结果:true

3.布尔运算符

! 非运算,表达式为true 则返回false,否则返回true。 示例:

#!/bin/bash
if [ ! 20 -le 30 ];then
  echo  false
else
  echo  true
fi

返回结果:true

-o 或运算,有一个表达式为true 则返回true。 示例:

#!/bin/bash
if [  20 -le 30 -o  30 -eq 20 ];then
  echo  true
else
  echo  flase
fi

返回结果:true

-a 与运算,两个表达式都为true 才返回true。 示例:

#!/bin/bash
if [  20 -le 30 -a  30 -eq 20 ];then
  echo  true
else
  echo  flase
fi

返回结果:flase

4.逻辑运算符

&& 逻辑的AND
示例:

#!/bin/bash
if [[ 10 -lt 100 && 20 -gt 100 ]];then
  echo  true
else
  echo  flase
fi

返回结果:flase

|| 逻辑的OR
示例:

#!/bin/bash
if [[ 10 -lt 100 || 20 -gt 100 ]];then
  echo  true
else
  echo  flase
fi

返回结果:true

5.字符串运算符

检测变量a为”abc”,变量b为”efg”
= 检测两个字符串是否相等,相等返回true。
示例:
[ $a = $b ] 返回 false。

!= 检测两个字符串是否相等,不相等返回true。
示例:
[ $a != $b ] 返回 true。

-z 检测字符串长度是否为0,为0返回true。
示例:
[ -z $a ] 返回 false。

-n 检测字符串长度是否为0,不为0返回true。 示例:
[ -n $a ] 返回 true。

str 检测字符串是否为空,不为空返回true。
示例:
[ $a ] 返回 true。

6.文件测试运算符

文件测试运算符

四、参考博文

Shell 基本运算符

Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

linux下的shell运算(加、减、乘、除)

let命令

Previous Post

shell简介

Next Post

linux常用文件判断

Related Posts