1.算术表达式
let 算术运算表达式
let c= a + a+ a+b
$[算术表达式] 不常用
c= [ [ [a+$b]
$((算术表达式))
c= ( ( (( ((a+ b ) ) 或 者 c = b))或者c= b))或者c=((a+b))
通过type let命令,可以知道let命令是一个shell builtin,因此可以用help命令查看:
let是一个算术表达式,里面有一些计算公式:
[root@node1 ~]# a=1
[root@node1 ~]# b=1
[root@node1 ~]# let c=$a+$b
[root@node1 ~]# echo $c
2
[root@node1 ~]# c=$[$a+$b]
[root@node1 ~]# c=$(($a+$b))
当输入# ( ( a + + ) ) 时 , 提 示 错 误 : “ − b a s h : 1 : c o m m a n d n o t f o u n d ” 。 L i n u x 把 它 当 成 一 个 命 令 了 , 而 非 算 术 表 达 式 。 当 不 需 要 把 算 术 表 达 式 的 值 赋 值 给 前 面 变 量 的 时 候 , ((a++))时,提示错误:“-bash: 1: command not found ”。Linux把它当成一个命令了,而非算术表达式。当不需要把算术表达式的值赋值给前面变量的时候, ((a++))时,提示错误:“−bash:1:commandnotfound”。Linux把它当成一个命令了,而非算术表达式。当不需要把算术表达式的值赋值给前面变量的时候,符号是不用写的:
[root@node1 ~]# ((a++))
[root@node1 ~]# echo $a
3
2.条件表达式
- [ expression ]
- test expression
- [[ expression ]]
重点关注File operators:
Tip:-eq等于,-ne不等于,-lt小于,-le小于等于,-gt大于,-ge大于等于
[root@node1 ~]# test 3 -gt 2
[root@node1 ~]# [ 3 -gt 2 ]
[root@node1 ~]# echo $?
0
[root@node1 ~]# test -a passwd
[root@node1 ~]# echo $?
0