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
“`