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

逻辑运算

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

条件测试

两种方式:

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

shell脚本的逻辑运算与算术运算-Linux(11)_第1张图片
输出结果为:

shell脚本的逻辑运算与算术运算-Linux(11)_第2张图片

可测试的条件类型

字符串

比较方式 结果
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)_第3张图片

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)_第4张图片

你可能感兴趣的:(Linux,shell)