Shell 基本运算符 1

Shell 和其他编程语言一样,支持多种运算符,包括:

算术运算符 

关系运算符

字符串运算符

文件测试运算符

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr expr 最常见

expr 是一款表达式计算工具,使用它能完成表达式的求职操作。

例如,两个数相加(注意使用的是反引号` 而不是单引号 ‘)

#!/bin/bash

val=`expr 2 + 2`

echo "两数之和为:$val"

执行脚本,输出结果如下所示:

两数之和:4

两点注意:

表达式和运算符之间要有空格,例如2+2是不对的,必须写成 2+2  这与我们熟悉的大多数编程语言不一样。

完整的表达式要被 ·· 包括

算术运算符

下表列出了常用的算术运算符

+   加法

-   减法

*    乘法

%   取余

=    赋值

== 相等

!=  不相等

注意表达式如果放在方括号之间 要有空格

实例

算术运算符实例如下:

#!/bin/bash

# author:菜鸟教程

# url:www.runoob.com

a=10

b=20

 

val=`expr $a + $b`

echo "a + b : $val"

val=`expr $a - $b`

echo "a - b : $val"

 

val=`expr $a \* $b`

echo "a * b : $val"

 

val=`expr $b / $a`

echo "b / a : $val"

 

val=`expr $b % $a`

echo "b % a : $val"

 

if [ $a == $b ]

then 

  echo  "a 等于 b"

fi

if [ $a != $b ]

then 

  echo "a 不等于 b"

fi

 

注意 :

乘号(*)前边必须加反斜杠(\)才能实现乘法运算;

if .. then ..fi 是条件语句 

在 MAC 中 shell 的 expr 语法是 $(表达式) 此处表达式中的 "*" 不需要转义符号 "\".

关系运算符

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

下表列出了常用的关系运算符

运算符 说明

-eq   检测两个数是否相等,相等返回true.

-ne  检测两个数是否不相等 不相等返回true.

-gt    检测左边的数是否大于右边 为真 返回 true

-lt     检测左边的数是否小于右边  为真 返回true

-ge   检测左边的数是否大于等于右边  为真 返回true

-le    检测左边的数是否小于等于右边的  为真 返回true

 

posted @ 2018-01-03 17:00  zhangsima  阅读(389)  评论(1编辑  收藏  举报