shell 运算符

目录

  算数运算符

  关系运算符

  布尔运算符

  字符串运算符

  文件测试运算符

算数运算符

+ 加法;  - 减法; * 乘法; / 除法; %取余; = 赋值; 

== 相等,判断两个数是否相等,相等则返回true

!= 不等,判断两个数是否相等,不等则返回true

Example:

echo `expr 2 + 2`
echo `expr 2 - 2`
echo `expr 2 \* 2`
echo `expr 2 / 2`
echo `expr 3 % 2`

a=2
b=2

if [ $a == $b ]
then
    echo "equal"
elif [ $a != $b ]
then
    echo "unequal"
fi

note:

  1) 表达式和运算符之间用空格隔开

  2)*号之前加\才能运算:2 \* 2

  3)`该符合时反引号,不是单引号。

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值事数字。

-eq(equal)两数相等,返回true

-ne(unequal) 两数不相等,返回true

-gt (greater than)左边数大于右边数,返回true

-lt (less than)左边数小于右边数,返回true

-ge (great than and equal to) 左边数大于等于右边数,返回true

-le (less than and equal to) 左边数小于等于右边数,返回true

例如:

#/bin/bash

a=2
b=2
if [ $a -ge $b ]
then
        echo "a >= b"
else
        echo "a < b"
fi

布尔运算符

! not、非。表达式为true则返回false,否则返回true

-o or、或,有一个表达式为true则返回true

-a and、与,两个表达式都为true才返回true

a=1
b=2

if [ $a != $b ]
then
    echo "a unequal b"
else
    echo "a equal b"
fi

if [ $a -lt 2 -a $b -gt 1 ]
then
    echo "a < 2 and b > 1: return true"
else
    echo "a < 2 and b > 1: return false"
fi

if [ $a -gt 2 -o $b -gt 1 ]
then
    echo "a > 2 or b > 1: retuen true"
else
    echo "a > 2 or b > 1: retuen false"
fi  

逻辑运算符

&&  逻辑and,

|| 逻辑or

列如:

a=1
b=2

if [[ $a -eq 1 && $b -eq 2 ]]
then
    echo "a 等于 1 并且 b 等于 2 return true"
else
    
    echo "a 等于 1 并且 b 等于 2 return false"
fi

if [[ $a -eq 1 || $b -eq 1 ]]
then
    echo "a 等于 1 或者 b 等于1 return true"
else
    echo "a 等于 1 或者 b 等于1 return false"
fi

字符串运算符

= 判断两个字符串是否相等,相等返回true

!= 判读两个字符串是否相等,不等返回true

-z 检测字符串的长度是否为0,是0返回true

-n 检测字符串的长度是否为0,不是0返回true

$ 检测字符串是否为空,不为空返回 true

a="a"
b="b"

if [ $a = $b ]
then
    echo "a 等于 b"
else
    echo "a 不等于 b"
fi

文件测试运算符

文件测试运算符用于检测文件的各种属性

-d file 检测文件是否是目录,如果是,则返回 true。

-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true

-r file 检测文件是否可读,如果是,则返回 true。

-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true

-e file 检测文件(包括目录)是否存在,如果是,则返回 true。

file="/etc/"

if [ -d $file ]
then
    echo "file is dir"
else
    echo "file is not dir"
fi

  

 

posted @ 2022-03-15 10:53  zhuang6  阅读(110)  评论(0)    收藏  举报