Shell-表达式

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命令查看:
Shell-表达式_第1张图片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:commandnotfoundLinux符号是不用写的:

[root@node1 ~]# ((a++))
[root@node1 ~]# echo $a
3

2.条件表达式

  • [ expression ]
  • test expression
  • [[ expression ]]
    重点关注File operators:
    Shell-表达式_第2张图片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

你可能感兴趣的:(Linux)