1 $() 与
这两个符号都用于命令替换
- ``基本上可用在全部的 unix shell 中使用
- $()并不是所有shell都支持
2 ${}
用于变量替换, 一般情况下,$var 与${var} 并无不同。
但${var}还有更强大的功能
3 $[] 与 $(())
这两个符号都用于数学运算
支持+ - * / %:分别为 加、减、乘、除、取模
只能作整数运算,对于浮点数是当作字符串处理的
i=$(($i+1)); # i+=1
i=$((i+1)); # i+=1
4 []
为test命令的另一种形式。但要注意:
- 你必须在左括号的右侧和右括号的左侧各加一个空格,否则会报错。
- 使用 >, <, == 来进行字符串的比较, 大小于符号必须要转义,否则会被理解成重定向。
- 使用 -lt, -gt, -eq等来进行数值的比较
5 (()) 与 [[]]
- (()) 是 [] 的 针对 数字比较表达式 的加强版
- 不需要再将 > < 符号 转义, 可以直接使用+ - * / %
- 还可以使用 自增自减, 逻辑与或非, 移位 等操作
- [[]] 是 [] 的 针对 字符串比较表达式 的加强版