Linux 一些表达式和运算符

条件表达式

表达式 示例
[ expression ] [ 5 -eq 5 ]
[[ expression ]] [[ 5 -eq 5 ]]
test expression test 1 -eq 1

以下符号用于整数比较测试:

| 比较符 | 含义 | 示例|
| ------ | ------ |
| -eq | 等于|[ 5 -eq 5 ] 结果为True|
| -ne | 不等于 |[ 5 -ne 5 ] 结果为False|
|-gt|大于|[ 5 -gt 5 ] 结果为False |
|-lt|小于|[ 6 -lt 4 ] 结果为False|
|-ge|大于或等于|[ 6 -ge 6 ] 结果为True|
|-le|小于或等于|[ 8 -le 8 ] 结果为True|

以下符号用于字符串比较

| 符号 | 描述 |示例(以下的反斜线和符号之间应该是没有空格的)|
| ------ | ------ |
| == | 等于 | [ "b" == "b" ] 结果为True|
| !=| 不等于 |[ "b" != "b" ] 结果为False|
|>|根据ASCII码表判断大小,大于| [ 10 \ > 9 ]、[[ 10 > 9 ]] 、(( 9 > 10 ))结果为False|
|<|根据ASCII码表判断大小,小于| [ 10 \ < 9 ]、[[ 10 < 9 ]]、(( 9 < 10 )) 结果为True|
|>=|大于等于|(( 9 >= 9 )) 结果为True|
|<=|小于等于|(( 9<= 10 )) 结果为True|
|-n|字符串长度不等于0则为真|var1=10;var2="",[ -n "$var1" ] 结果为True,[ -n "$var2" ] 结果为False|
|-z|字符串长度等于0则为真|[ -z "$var1" ],结果为False,[ -z "$var2" ],结果为True|
|str|字符串存在则为真|[ $var1 ]为True,[ $var2 ]为False|

注意:
使用-z或者-n判断字符串长度时,变量要加双引号

如果使用双中括号就不用双引号了

文件测试:

|测试符| 含义 |示例|
| ------ | ------ |
|-e |文件或目录存在为真 |[ -e dir/file/path ] 存在为 True|
|-f |文件存在为真 |[ -f file ]文件存在为 True|
|-d| 目录存在为真 |[ -d dir ] 目录存在为 True|
|-r |有读权限为真 |[ -r file ] file 有读权限为 True|
|-w| 有写权限为真 |[ -w file ] file 有写权限为 True|
|-x| 有执行权限为真 |[ -x file ] file 有执行权限为 True|
|-s|文件存在并且大小大于0为真|[ -s file ] file_path 存在并且大小大于 0
为 True|

布尔运算符:

|运算符| 含义| 示例|
| ------ | ------ |
|!|非关系,将结果取反 |[ ! 9 -eq 8 ]为 true
|-a| AND, 且关系,在[ ]表达式中使用 |[ 1 -eq 1 -a 2 -eq 2 ]为 True,两边都要成立|
|-o| OR, 或关系,在[ ]表达式中使用 |[ 1 -eq 1 -o 2 -eq 1 ]为 True,一边成立即可|

逻辑表达式:
逻辑表达式有:&&(逻辑与)、||(逻辑或)、两者再[[ ]]和(())表达式中使用:

[[ 1 -eq 1 && 2 > 1 ]]结果为True

(( 1 == 1 && 2 > 1 ))结果为True

整数运算符:

运算符 描述
+ 加法
- 减法
* 乘法
/ 除法
% 取余

运算表达式:

运算表达式 示例
$(()) $((5+5))
$[] $[5+5]

注意:

$(())表达式还可以做三目运算:

echo $((100>99?1:2)) 如果100大于99 就返回1否则返回2

返回值不支持字符串。

posted @ 2018-11-04 22:17  HzdWwZz"LJF  阅读(474)  评论(0编辑  收藏  举报