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:系统默认保留的 其余为用户自定义的命令执行状态返回值 示例: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |