Linux Shell中的:运算符的使用方法 (linux shell $(()))

随着信息技术的迅猛发展,Linux系统在各个领域都有着广泛的应用。在Linux中,Shell脚本是非常重要的一种程序设计语言。除了条件语句、循环语句等,运算符也是Shell脚本中常用的一种结构。本文将对Linux Shell中常用的运算符进行介绍和应用。

一、算术运算符

1、加法运算符:+

用于计算两个变量或常量的和,例如:

“`

#!/bin/bash

a=10

b=20

echo $((a+b)) # 输出30

“`

2、减法运算符:-

用于计算两个变量或常量的差,例如:

“`

#!/bin/bash

a=10

b=20

echo $((b-a)) # 输出10

“`

3、乘法运算符:*

用于计算两个变量或常量的积,例如:

“`

#!/bin/bash

a=10

b=20

echo $((a*b)) # 输出200

“`

4、除法运算符:/、%

“/”用于求两个变量或常量的商,“%”用于求余数,例如:

“`

#!/bin/bash

a=10

b=20

echo $((b/a)) # 输出2

echo $((b%a)) # 输出0

“`

二、关系运算符

关系运算符主要用于比较两个变量或常量的大小,结果为真或假。

1、等于运算符:==

用于判断两个变量或常量是否相等,例如:

“`

#!/bin/bash

a=10

b=20

if [ $a == $b ]

then

echo “a 等于 b”

else

echo “a 不等于 b”

fi # 输出a 不等于 b

“`

2、不等于运算符:!=

用于判断两个变量或常量是否不相等,例如:

“`

#!/bin/bash

a=10

b=20

if [ $a != $b ]

then

echo “a 不等于 b”

else

echo “a 等于 b”

fi # 输出a 不等于 b

“`

3、大于运算符:>

用于判断左边变量或常量是否大于右边变量或常量,例如:

“`

#!/bin/bash

a=10

b=20

if [ $a > $b ]

then

echo “a 大于 b”

else

echo “a 不大于 b”

fi # 输出a 不大于 b

“`

4、小于运算符:

用于判断左边变量或常量是否小于右边变量或常量,例如:

“`

#!/bin/bash

a=10

b=20

if [ $a

then

echo “a 小于 b”

else

echo “a 不小于 b”

fi # 输出a 小于 b

“`

5、大于等于运算符:>=

用于判断左边变量或常量是否大于等于右边变量或常量,例如:

“`

#!/bin/bash

a=10

b=20

if [ $a >= $b ]

then

echo “a 大于等于 b”

else

echo “a 不大于等于 b”

fi # 输出a 不大于等于 b

“`

6、小于等于运算符:

用于判断左边变量或常量是否小于等于右边变量或常量,例如:

“`

#!/bin/bash

a=10

b=20

if [ $a

then

echo “a 小于等于 b”

else

echo “a 不小于等于 b”

fi # 输出a 小于等于 b

“`

三、逻辑运算符

逻辑运算符主要用于将多个比较运算符连接起来,判断复杂条件的结果为真或假。

1、与运算符:&&

用于判断多个条件是否同时成立,例如:

“`

#!/bin/bash

a=10

b=20

if [[ $a -lt 100 && $b -gt 100 ]]

then

echo “返回 true”

else

echo “返回 false”

fi # 输出返回 false

“`

2、或运算符:||

用于判断多个条件是否有一个成立,例如:

“`

#!/bin/bash

a=10

b=20

if [[ $a -lt 100 || $b -gt 100 ]]

then

echo “返回 true”

else

echo “返回 false”

fi # 输出返回 true

“`

3、非运算符:!

用于对条件进行取反,例如:

“`

#!/bin/bash

a=10

b=20

if [ ! $a == $b ]

then

echo “a 不等于 b”

else

echo “a 等于 b”

fi # 输出a 不等于 b

“`

四、位运算符

位运算符主要用于处理二进制数的运算,有时候也可以用于实现一些特殊的操作。

1、按位与运算符:&

对两个二进制数进行“与”运算,例如:

“`

#!/bin/bash

a=10

b=20

c=`expr $a & $b`

echo $c # 输出0

“`

2、按位或运算符:|

对两个二进制数进行“或”运算,例如:

“`

#!/bin/bash

a=10

b=20

c=`expr $a | $b`

echo $c # 输出30

“`

3、按位异或运算符:^

对两个二进制数进行“异或”运算,例如:

“`

#!/bin/bash

a=10

b=20

c=`expr $a ^ $b`

echo $c # 输出30

“`

4、按位取反运算符:~

对一个二进制数进行取反操作,例如:

“`

#!/bin/bash

a=10

c=`expr ~$a`

echo $c # 输出-11

“`

五、赋值运算符

赋值运算符主要用于将右侧的值赋给左侧的变量。

1、等于号:=

例如:

“`

#!/bin/bash

a=10

echo $a # 输出10

“`

2、加等于:+=

将右侧的值加上左侧的值,将结果赋给左侧的变量,例如:

“`

#!/bin/bash

a=10

b=20

a+=b

echo $a # 输出30

“`

3、减等于:-=

将右侧的值减去左侧的值,将结果赋给左侧的变量,例如:

“`

#!/bin/bash

a=10

b=20

b-=a

echo $b # 输出10

“`

4、乘等于:*=

将左侧的值乘以右侧的值,将结果赋给左侧的变量,例如:

“`

#!/bin/bash

a=10

b=20

a*=b

echo $a # 输出200

“`

5、除等于:/=

将左侧的值除以右侧的值,将结果赋给左侧的变量,例如:

“`

#!/bin/bash

a=10

b=20

b/=a

echo $b # 输出2

“`

6、取模等于:%=

将左侧的值取模操作右侧的值,将结果赋给左侧的变量,例如:

“`

#!/bin/bash

a=10

b=21

b%=a

echo $b # 输出1

“`

六、字符串运算符

字符串运算符主要用于对字符串进行操作和比较。

1、等于号:==

用于判断两个字符串是否相等,例如:

“`

#!/bin/bash

a=”hello”

b=”world”

if [ $a == $b ]

then

echo “a 等于 b”

else

echo “a 不等于 b”

fi # 输出a 不等于 b

“`

2、不等于号:!=

用于判断两个字符串是否不相等,例如:

“`

#!/bin/bash

a=”hello”

b=”world”

if [ $a != $b ]

then

echo “a 不等于 b”

else

echo “a 等于 b”

fi # 输出a 不等于 b

“`

3、长度运算符:-z、-n

“-z”用于判断一个字符串是否为空,例如:

“`

#!/bin/bash

a=””

if [ -z $a ]

then

echo “a 为空字符串”

else

echo “a 不为空字符串”

fi # 输出a 为空字符串

“`

“-n”用于判断一个字符串是否为非空,例如:

“`

#!/bin/bash

a=”hello”

if [ -n $a ]

then

echo “a 不为空字符串”

else

echo “a 为空字符串”

fi # 输出a 不为空字符串

“`

4、字符串比较运算符:、=

用于按字典顺序比较两个字符串大小,例如:

“`

#!/bin/bash

a=”abc”

b=”def”

if [ $a \> $b ]

then

echo “$a 大于 $b”

else

echo “$a 不大于 $b”

fi # 输出abc 不大于 def

“`

七、文件测试运算符

文件测试运算符主要用于检查文件的属性和类型。

1、存在运算符:-e

用于判断文件是否存在,例如:

“`

#!/bin/bash

file=”/root/test.txt”

if [ -e $file ]

then

echo “文件存在”

else

echo “文件不存在”

fi

“`

2、普通文件运算符:-f

用于判断文件是否存在和是否是一个普通文件,例如:

“`

#!/bin/bash

file=”/root/test.txt”

if [ -f $file ]

then

echo “文件存在且为普通文件”

else

echo “文件不存在或不是普通文件”

fi

“`

3、目录运算符:-d

用于判断文件是否存在和是否是一个目录,例如:

“`

#!/bin/bash

file=”/root”

if [ -d $file ]

then

echo “文件存在且为目录”

else

echo “文件不存在或不是目录”

fi

“`

4、块设备文件运算符:-b

用于判断文件是否存在和是否是一个块设备文件,例如:

“`

#!/bin/bash

file=”/dev/sda”

if [ -b $file ]

then

echo “文件存在且为块设备文件”

else

echo “文件不存在或不是块设备文件”

fi

“`

5、字符设备文件运算符:-c

用于判断文件是否存在和是否是一个字符设备文件,例如:

“`

#!/bin/bash

file=”/dev/tty1″

if [ -c $file ]

then

echo “文件存在且为字符设备文件”

else

echo “文件不存在或不是字符设备文件”

fi

“`

6、符号链接运算符:-h

用于判断文件是否存在和是否是一个符号链接文件,例如:

“`

#!/bin/bash

file=”/root/test.txt”

link=”/root/test_link”

ln -s $file $link

if [ -h $link ]

then

echo “文件存在且为符号链接文件”

else

echo “文件不存在或不是符号链接文件”

fi

“`


数据运维技术 » Linux Shell中的:运算符的使用方法 (linux shell $(()))