shell 算术运算符

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

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

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

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

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

[root@VM_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

例子:

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

 

posted @ 2019-06-28 22:04  _HuangWei  阅读(157)  评论(0编辑  收藏  举报