(二)Linux Shell编程——运算符、注释

时间:2022-07-14 15:36:10

2.7 Shell运算符

Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

2.7.1 算数运算符

val=`expr 2 + 3`
echo "2+3 is ${val}"

var2=`expr 3 \* 2`
echo "3*2 is ${var2}"

var4=10
var5=20
if [ ${var4} != ${var5} ]
then
echo "var4 is not equals var5"
fi

通过上面的代码可以看出,在通过Shell进行算数运算时,需要注意以下几点:

  • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
  • 乘号(*)前边必须加反斜杠(\)才能实现乘法运算。
  • 条件表达式要放在方括号之间,并且要有空格,例如 [$a==$b] 是错误的,必须写成 [ $a == $b ]。

常用的算数运算符如下:

(二)Linux Shell编程——运算符、注释

2.7.2 关系运算符

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

a=23
b=2
if [ ${a} -le ${b} ]
then
    echo "a is less or equals to b"
else
    echo "a is greater than b"
fi

常用关系运算符如下:

(二)Linux Shell编程——运算符、注释

2.7.3 布尔运算符

布尔运算符用于多个条件的连接。

a=23
b=2
if [ ${a} -le 23 -o ${b} -gt 23 ]
then
    echo "23<=23 || 2>23 true will echo..."
else
    echo "23<=23 || 2>23 not true"
fi

常用布尔运算符如下:

(二)Linux Shell编程——运算符、注释

2.7.4 字符串运算符

a="hello"
if [ -z ${a} ]
then
   echo "-z ${a} : string length is zero"
else
   echo "-z ${a} : string length is not zero"
fi

常用的字符串运算符如下:

(二)Linux Shell编程——运算符、注释

2.7.5 文件测试运算符

file="/mnt/hhh.txt"
if [ -e ${file} ]
then
   echo "File exists"
else
   echo "File does not exist"
fi

常用的文件测试符如下:

(二)Linux Shell编程——运算符、注释

2.8 注释

2.8.1 单行注释

单行注释在行首用 “#”来表示该行为注释。

#我是单行注释

2.8.2 多行注释

Shell的多行注释比较特殊,格式为“:<<!   ···内容···    !”。注意:不是“# 内容 #”的格式。

:<<!
file="/mnt/hhh.txt"
我是多行注释
!