欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell脚本的逻辑运算与算术运算-Linux(11)

程序员文章站 2022-07-12 12:30:16
...

逻辑运算

shell脚本编程中提供了条件结构,根据条件的不同而进行不同的操作。

条件测试

两种方式:

  • test 条件表达式
  • [ 条件表达式 ] 必须在[]前后加空格,否则报错。
    测试一下:

shell脚本的逻辑运算与算术运算-Linux(11)
输出结果为:

shell脚本的逻辑运算与算术运算-Linux(11)

可测试的条件类型

字符串

比较方式 结果
string1 = string2 相同则为真
string1 != string2 不同则为真
-n string 字符串不为空则为真
-z string 为空则为真

要注意的是 = 两边必须要有空格

算术比较

比较方式 结果
expression1 -eq expression2 相等则为真
expression1 -ne expression2 不等则为真
expression1 -gt expression2 expression1大于expression2则为真
expression1 -ge expression2 expression1大于或者等于expression2为真
expression1 -lt expression2 expression1小于expression2为真
expression1 -le expression2 expression1小于或者等于expression2为真

文件条件测试

比较方式 结果
-d file 文件是目录则为真
-e file 文件存在则为真
-f file 普通文件则为真
-r file 文件可读则为真
-s file 文件长度不为0则为真
-w file 文件可写则为真
-x file 文件可执行则为真

逻辑运算

and运算

运算符为&&

statement1 && statement2 && statement3

顺序执行语句,第一条为真才会判断下一个。
测试代码:

#! /bin/bash
if [ 1 -gt 0 ] && echo 第二条命令 && [ 0 -gt 1 ]
then
echo yes
else
echo no
fi

结果:

shell脚本的逻辑运算与算术运算-Linux(11)

or运算

statement1 || statement2 || statement3

顺序执行,直到找到一条命令为真,则停止执行以后命令。

算术运算

expr命令

格式:

expr expression
  • 运算符号前后要有空格,并且乘法要转义,即 "\*"
  • 启用新的shell执行expr命令

$((expression))

$((expression))

let命令

格式:

let expression
  • 变量前可以省略$
    上述三种的测试代码:
#! /bin/bash
a=1
b=2
echo `expr $a \* $b`
echo $(($a*$b))
let c=a*b
echo $c

结果:
shell脚本的逻辑运算与算术运算-Linux(11)

相关标签: Linux shell