一、bash中的算术运算
1.bash中的算数运算符
常用的基本算数运算符:+,-,*,/,%,**
增强型算术运算符:+=,-=,*=,/=,%=
特殊的增强型算数运算符:++,--
2.算术运算方法
1)$[expression]
其中的表达式可以是纯数字组成,也可以使用变量引用变量值;在使用变量时,可以将$省略
示例:
2)let VAR=EXPRESSION
根据算数表达式完成算术运算并赋值给指定的变量
示例:
3)$((EXPRESSION))
示例:
4)expr ARGUMENT1 ARGUMET2 ARGUMENT3
其中ARRGU1和ARGU3必须是整数数值;ARGU2是算数运算符;
示例:
5)echo "EXPRESSION" | bc
示例:
6)bc <<< "EXPRESSION"
示例:
二、bash中的条件测试语句
1.条件测试命令:
test EXPRESSION 等价于 [ EXPRESSION ], 此为bash的内建命令
另外[[ EXPRESSION ]]:bash的内建命令,一般用于某些特定结构或者格式之中
2.数值测试(双目操作):
-eq 测试两个数值是否相等,相等为真,不等为假
-ne 测试是否不等,不等为真
-lt 测试是否小于,小于为真
-gt 测试是否大于
-le 测试是否小于等于
-ge 测试是否大于等于
示例:
3.字符串测试
双目测试:
==|= 测试两个字符串是不是相同的字符串,相同为真
!= 测试两个字符串是否不同,不同为真
> 测试左边的字符串所对应的ASCII编码是否比右边的大
< 测试左边的字符串所对应的ASCII编码是否比右边的小
=~ 左边是字符串,右边是PATTERN,测试左边是否能被右边匹配,能匹配为真
注意:<、>、=~三类操作符只能用在[[ ]]里面的表达式
单目测试
-z 'STRING' 测试是否为空串,空为真
-n 'STRING' 测试是否不是空串,不空为真
示例:
3.文件测试
-a|-e 测试文件是否存在,存在为真
-b 测试文件是否存在且为块设备文件
-c 测试文件是否存在且为字符设备
-d 测试目录是否存在
-f 测试文件是否存在且为普通文件
-h|L 测试文件是否存在且为符号链接文件
-s 测试文件是否存在且其大小大于0,否则为假
-S 测试文件是否存在且为套接字文件
-t FD:测试文件描述符是否在终端上被打开,被打开为真
文件访问权限测试
-r 文件存在且当前用户被授予写权限
-w
-x
文件特殊权限测试
-u 测试文件是否设置了SUID
-g 测试文件是否设置了SGID
-k 测试文件是否设置了STICKY
文件所有权测试
-O 测试文件是否存在且其属主是否为当前有效用户
-G 测试文件是否存在且其属组是否为当前有效用户的所在组
双目测试
-ef 判断两个文件是否为同一个文件(拥有相同的Inode编号),即:两个文件是否互为硬连接
-nt 是否比后一文件新(修改时间戳)
-ot 是否比后一文件老
示例:
4.在测试语句中添加逻辑运算符号
bash的运算逻辑符号:[ EXPRESSION ] && [ EXPRESSION ]
条件测试命令本身的逻辑运算符号:
[ expression1 -a expression2 ]
[ expression1 -o expression2 ]
[ ! expression1 ]
示例:
5.命令的执行结果
1)命令的正常输出结果
2)命令的执行状态返回值
0-255
0:命令成功执行或判断为真
1-255:表示命令执行失败或判断为假
1,2,127:系统默认保留的
其余为用户自定义的命令执行状态返回值
示例:
转载于:https://blog.51cto.com/papapa213/2044046