1 $() 与

这两个符号都用于命令替换

  • ``基本上可用在全部的 unix shell 中使用
  • $()并不是所有shell都支持

2 ${}

用于变量替换, 一般情况下,$var 与${var} 并无不同。
但${var}还有更强大的功能
image.png

3 $[] 与 $(())

这两个符号都用于数学运算
支持+ - * / %:分别为 加、减、乘、除、取模
只能作整数运算,对于浮点数是当作字符串处理的

  1. i=$(($i+1)); # i+=1
  2. i=$((i+1)); # i+=1

4 []

为test命令的另一种形式。但要注意:

  • 你必须在左括号的右侧和右括号的左侧各加一个空格,否则会报错。
  • 使用 >, <, == 来进行字符串的比较, 大小于符号必须要转义,否则会被理解成重定向。
  • 使用 -lt, -gt, -eq等来进行数值的比较


5 (()) 与 [[]]

  • (()) 是 [] 的 针对 数字比较表达式 的加强版
    • 不需要再将 > < 符号 转义, 可以直接使用+ - * / %
    • 还可以使用 自增自减, 逻辑与或非, 移位 等操作
  • [[]] 是 [] 的 针对 字符串比较表达式 的加强版