Shell运算符

Shell 基本运算符

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

  • 算数运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符

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

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

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


两点注意:

  • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

算术运算符

下表列出了常用的算术符,假定变量 a 为 10,变量 b 为 20:

注意:条件表达式要放在方括号之间,
例子:

    a=1
    b=2
    echo $[$a + $b ]
    echo `expr $a + $b`
结果:    3
               3
       ① 将进行运算的表达式的的结果[ ],得到一个值。
       ② 表达式的结果需要用expr,和反单引号。

关系运算符

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

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi

布尔运算符

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:

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

逻辑运算符

以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:


字符串运算符

下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg":


echo $[$a = $b]
不相等,输出0;

文件测试运算符

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

属性检测描述如下:

 
 
file="/var/www/runoob/test.sh"
if [ -r $file ]
then
   echo "文件可读"
else
   echo "文件不可读"
fi

结果:文件可读



猜你喜欢

转载自blog.csdn.net/xiaozelulu/article/details/80293788