shell 算术运算符

Posted icase

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 算术运算符相关的知识,希望对你有一定的参考价值。

 在shell中可以使用$((expression))来实现整数级的算术运算功能(整数级!浮点需要通过其他方法实现)

表达式 含  义
$((x+y)) 加法
$((x-y)) 减法
$((x/y)) 除法$((8/3))=2
$((x*y)) 乘法
$((x%y)) 取余
$((x++)) 自加
$((x--)) 自减
$((x**y)) 幂运算

除了使用$((expression)) 还可以使用 命令工具expr

[[email protected]_0_3_centos ~]# expr 5 - 2  #减法
3
[[email protected]_0_3_centos ~]# expr 5 + 2 # 加法
7
[[email protected]_0_3_centos ~]# expr 5 \* 2 # 乘法
10
[[email protected]_0_3_centos ~]# expr 5 / 2 # 除法
2
[[email protected]_0_3_centos ~]# expr 5 % 2 # 取余
1

注意:数字与运算法之间通过空格隔开,否则输出为

[[email protected]_0_3_centos ~]# expr arg_1-arg_2
arg_1-arg_2

 

shell除了提供算术表达式外,还提供了一些判断功能。通过内置的test命令即可实现

测试选项 含义 测试选项 含义
-d FILE FILE是否存在且为目录 -e FILE 文件是否存在
-f FILE FILE是否存在且为普通文件 -r FILE 文件是否存在且可读
-w FILE FILE是否存在且为可写 -x FILE 文件是否存在且可执行
-s FILE FILE是否存在且为非空 -h FILE 文件是否为链接文件
-n STRING 字符串的长度为非零 -z STRING 字符串的长度为零
STRING1 = STRING2 字符串相等 STRING1 = STRING2  
INTER1 -eq INTER2 整数相等 INTER1 -ge INTER2 整数大于或等于整数2
INTER1 -gt INTER2 整数1大于整数2 INTER1 -le INTER2 整数小于或等于整数2
INTER1 -lt INTER2 整数1小于整数2 INTER1 -ne INTER2 整数1不等于整数2

例子:

[[email protected]_0_3_centos etc]# cd /root
[[email protected]_0_3_centos ~]# mkdir huangwei
[[email protected]_0_3_centos ~]# cd huangwei
[[email protected]_0_3_centos huangwei]# touch huangwei.txt
[[email protected]_0_3_centos huangwei]# ls
huangwei.txt
[[email protected]_0_3_centos huangwei]# test -d huangwei.txt && echo "Y" || echo "N"
N
[[email protected]_0_3_centos huangwei]# test -f huangwei.txt && echo "Y" || echo "N"
Y
[[email protected]_0_3_centos huangwei]# [22 -eq 23] && echo "Y" || echo "Y"
Y

 

以上是关于shell 算术运算符的主要内容,如果未能解决你的问题,请参考以下文章

shell从入门到精通(11)Shell算术运算

shell中如何进行算术运算

Shell脚本编程算术运算和条件测试

shell编程之算术运算符

Shell算术运算

shell算术运算和文件测试及多分支if语句