(())用法(常用语简单的整数计算)
算术运算符号
运算符
| 意义
|
++ --
| 增加接减少,可前置也可放在结尾
|
+ - ! ~
| 一元的正号与负号,非,逻辑与位的取反
|
* / %
| 乘法、除法、取余
|
+ -
| 加法、减法
|
< <= > >=
| 比较符号
|
== !=
| 相等、不相等
|
<< >>
| 向左移位、向右移位
|
&
| 位的AND
|
^
| 位的异或
|
|
| 位的或
|
&&
| 位的AND
|
||
| 为的OR
|
?:
| 条件表达式
|
= += -= *= /= %= &=
| 赋值运算符
|
常用文件测试操作符号
常用文件操作符号
| 说明
|
-f 文件,英文file
| 文件存在且为普通文件则真,即测试表达式成立
|
-d文件,英文directory
| 文件存在且为目录文件则真,即测试表达式成立
|
-s 文件,英文size
| 文件存在且文件大小不为0则真,即测试表达式成立
|
-e 文件,英文exist
| 文件存在则真,即测试表达式成立。只要有文件就行,区别-f
|
-r 文件,英文read
| 文件存在且可读则真,即测试表达式成立。
|
-w 文件,英文write
| 文件存在且可写则真,即测试表达式成立。
|
-x 文件,英文executable
| 文件存在且可执行则真,即测试表达式成立。
|
-L 文件,英文link
| 文件存在且为链接则真,即测试表达式成立。
|
f1 -nt f2,英文newer than
| 文件f1比文件f2新则真,即测试表达式成立,根据文件修改时间计算
|
f1 -ot f2,英文older than
| 文件f1比文件f2旧则真,即测试表达式成立,根据文件修改时间计算
|
字符串测试操作符
字符串测试操作符的作用:比较两个字符串是否相同、字符串长度是否为零,字符串是否为NULL。Bash区分零长度字符串和空字符串。
常用字符串测试操作符
| 说明
|
-z "字符串"
| 若串长度为0则真,-z理解为zero
|
-n "字符串"
| 若串长度不为0则真,-n理解为 no zero
|
"串1"="串2 "
| 若串1等于串2则真,可以使用"=="代替"="
|
""!=""
| 若串1不等于串2则真,但不能使用"!=="代替"!="
|
特别注意,以上表格中的字符串测试操作符号务必要用""引起来。[ -z "$string" ]字符串比较,比较符号两端最好有空格,参考系统脚本。[ "$password"="john" ]中[、 "$password"、=、"john"、 ]之间必须存在空格 |
整数二元比较操作符
在[]中使用的比较符
| 说明
|
-eq
| equal 等于 应用于:整数比较
|
-ne
| not equal 不等于 应用于:整型比较
|
-gt
| greater than 大于 应用于:整型比较
|
-ge
| greater equal 大于或等于 应用于:整型比较
|
-lt
| less than 小于 应用于:整型比较
|
-le
| less equal 大于或等于:整型比较
|
逻辑操作符
在[]中使用的逻辑扣件符 | 说明
|
-a
| 与and,两端都为真则真
|
-o
| 或or,有一个真就真
|
!
| 非not,相反则为真
|
小结:
多个[]之间的逻辑扣件符是&&或||
&&前面成功执行后面 || 前面不成功执行后面其他
有时用[]比if要简单
[root@vm1 scripts]# [ -f"$file" ] && echo 1 || echo 0
0
[root@vm1 scripts]# if [ -f"$file" ];then echo 1;else echo 0; fi
0