bash中的算数运算和条件测试语句

前端之家收集整理的这篇文章主要介绍了bash中的算数运算和条件测试语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、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://www.f2er.com/bash/389548.html

猜你在找的Bash相关文章