Shell基本运算符
2017-12-08 23:15
260 查看
# Shell基本运算符
# Shell支持多种运算符:
# 算术运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符
# 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr,expr最常见。
# expr是一款表达式计算工具,使用它能完成表达式的求值操作。
val=`expr 2 + 2`
echo "两数之和为:$val"
# 输出结果:
# 两数之和为:4
# 注意:1、表达式和运算符之间要有空格;2、完整的表达式要被``(反引号)包含,注意这个字符是单引号。
# 算术运算符
# 下面是常用的算术运算符,
假定变量a为10,b为20
# 1、+ --
加号 -- `expr $a + $b` 结果为30
# 2、- --
减号 -- `expr $a - $b` 结果为 - 10
# 3、* --
乘法 -- `expr $a \* $b` 结果为200
# 4、/ --
除法 -- `expr $b / $a` 结果为2
# 5、% --
取余 -- `expr $b % $a` 结果为0.
# 6、= --
赋值 -- a=$b
将变量b的结果给a
# 7、== --
相等。用于比较两个数字,返回true或false
[$a == $b]
返回false
# 8、!= --
不相等。用于比较两个数字,
[$a != $b]
返回true
# 注意:条件表达式要放在方括号之间,并且要有空格
a=10
b=20
echo "a+b =" ` expr $b + $a`
echo "b-a= " `expr $b - $a`
echo "a*b= " `expr $b \* $a`
echo "b/a= " `expr $b / $a`
echo "b%a= " `expr $b % $a`
a=$b
if [ $a == $b
]
then
echo "a等于b"
fi
if [ $a != $b
]
then
echo "a不等于b"
fi
# 执行结果:
# a+b = 30
# b-a= 10
# a*b= 200
# b/a= 2
# b%a= 0
# a等于b
# 注意:1、乘号(*)前面必须加反斜杠(\)才能实现乘法运算
# 2、if ... than .. fi
;
# 3、在MAC中Shell的expr语法是:
$((表达式
)),此处*不需要转义符号\
# 关系运算符,
关系运算符只支持数字,除非字符串的值是数字
#1、 -eq
检测两个数是否相等
[$a -eq $b]
#2、 -ne
检测两个数是否不相等
[$a -ne $b]
#3、 -gt
大于
[$a -gt $b]
#4、 -lt
小于
#5、 -ge
大于等于
#6、 -le
小于等于
#布尔运算符
# ! 非运算
[!false]
# -o 或运算
[ $a -lt 20 -o $b -gt 100
]
# -a 与运算
#逻辑运算符
# && 逻辑AND
[[$b -eq 20 && $b -eq 10]]
# || 逻辑OR
[[$a -eq 10 || $b -eq 20]]
#字符串运算符
#1、 =
检测两个字符是否相等
[$a = $b]
#2、!=
检测是否不相等
#3、 -z
检测字符串长度是否为0
[-z $a]
#4、-n
检测字符串长度是否不为0
[-n $b]
#5、str
检测是否为空 [$a]
#文件操作符
# 1、 -b file
检测文件是否是块设备文件
[-b $file]
#2、 -c file
检测文件师傅是字符设备文件
[-c $file]
#3、 -d file
检测文件是否是目录
[-d $file]
# 4、 -f file
检测文件是否是普通文件(既不是目录,也不是设备文件)
#5、 -g file
检测文件是否设置了SGID位
#6、 -k file
检测文件是否设置了粘着位
#7、 -p file
检测文件是否有管道
#8、 -u file
检测文件是否设置了SUID位
#9、 -r file
检测文件是否可读
#10、 -w file
检测文件是否可写
#11、-x file
检测文件是否可执行
#12、-s file
检测文件是否为空(文件大小为0)
#13、-e file
检测文件是否存在
# Shell支持多种运算符:
# 算术运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符
# 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr,expr最常见。
# expr是一款表达式计算工具,使用它能完成表达式的求值操作。
val=`expr 2 + 2`
echo "两数之和为:$val"
# 输出结果:
# 两数之和为:4
# 注意:1、表达式和运算符之间要有空格;2、完整的表达式要被``(反引号)包含,注意这个字符是单引号。
# 算术运算符
# 下面是常用的算术运算符,
假定变量a为10,b为20
# 1、+ --
加号 -- `expr $a + $b` 结果为30
# 2、- --
减号 -- `expr $a - $b` 结果为 - 10
# 3、* --
乘法 -- `expr $a \* $b` 结果为200
# 4、/ --
除法 -- `expr $b / $a` 结果为2
# 5、% --
取余 -- `expr $b % $a` 结果为0.
# 6、= --
赋值 -- a=$b
将变量b的结果给a
# 7、== --
相等。用于比较两个数字,返回true或false
[$a == $b]
返回false
# 8、!= --
不相等。用于比较两个数字,
[$a != $b]
返回true
# 注意:条件表达式要放在方括号之间,并且要有空格
a=10
b=20
echo "a+b =" ` expr $b + $a`
echo "b-a= " `expr $b - $a`
echo "a*b= " `expr $b \* $a`
echo "b/a= " `expr $b / $a`
echo "b%a= " `expr $b % $a`
a=$b
if [ $a == $b
]
then
echo "a等于b"
fi
if [ $a != $b
]
then
echo "a不等于b"
fi
# 执行结果:
# a+b = 30
# b-a= 10
# a*b= 200
# b/a= 2
# b%a= 0
# a等于b
# 注意:1、乘号(*)前面必须加反斜杠(\)才能实现乘法运算
# 2、if ... than .. fi
;
# 3、在MAC中Shell的expr语法是:
$((表达式
)),此处*不需要转义符号\
# 关系运算符,
关系运算符只支持数字,除非字符串的值是数字
#1、 -eq
检测两个数是否相等
[$a -eq $b]
#2、 -ne
检测两个数是否不相等
[$a -ne $b]
#3、 -gt
大于
[$a -gt $b]
#4、 -lt
小于
#5、 -ge
大于等于
#6、 -le
小于等于
#布尔运算符
# ! 非运算
[!false]
# -o 或运算
[ $a -lt 20 -o $b -gt 100
]
# -a 与运算
#逻辑运算符
# && 逻辑AND
[[$b -eq 20 && $b -eq 10]]
# || 逻辑OR
[[$a -eq 10 || $b -eq 20]]
#字符串运算符
#1、 =
检测两个字符是否相等
[$a = $b]
#2、!=
检测是否不相等
#3、 -z
检测字符串长度是否为0
[-z $a]
#4、-n
检测字符串长度是否不为0
[-n $b]
#5、str
检测是否为空 [$a]
#文件操作符
# 1、 -b file
检测文件是否是块设备文件
[-b $file]
#2、 -c file
检测文件师傅是字符设备文件
[-c $file]
#3、 -d file
检测文件是否是目录
[-d $file]
# 4、 -f file
检测文件是否是普通文件(既不是目录,也不是设备文件)
#5、 -g file
检测文件是否设置了SGID位
#6、 -k file
检测文件是否设置了粘着位
#7、 -p file
检测文件是否有管道
#8、 -u file
检测文件是否设置了SUID位
#9、 -r file
检测文件是否可读
#10、 -w file
检测文件是否可写
#11、-x file
检测文件是否可执行
#12、-s file
检测文件是否为空(文件大小为0)
#13、-e file
检测文件是否存在
相关文章推荐
- Shell 基本运算符
- shell基本运算符
- Shell 基本运算符
- Shell 基本运算符整理
- Shell 基本运算符
- Shell教程(三):数组/Arrays、基本运算符
- Shell 基本运算符
- shell学习数组、基本运算符
- Shell--基本运算符
- Shell 基本运算符
- Shell基本运算符~05
- Shell学习之基本运算符
- shell脚本之基本运算符
- Shell 基本运算符
- Shell 基本运算符
- Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等
- Shell 基本运算符
- Shell 基本运算符
- Shell 基本运算符(转)
- shell 教程四:基本运算符(算数,关系,布尔,字符串,文件检测)