一开始接触shell的时候,很容易被各种{},[],()的各种组合绕晕,本文对这些使用做一下简单的总结
$( )与` `(反引号)
两个都是执行命令的语法 得到的结果都是一样的
但是个人更喜欢用$(),原因如下:
【1】因为反引号很容易月单引号搞混,不利于阅读脚本
【2】多层嵌套执行命令的化 反引号需要用 \ 进行转义,麻烦还不便于阅读脚本
当然,$()也有缺点,不是所有的bash都支持$()
${}
${var}和$var意义一样,都是指代变量
我更喜欢用${},因为对变量的名字更加精准,在一些特殊场景很有用,例如:
${}还有更强大的共呢个:
【1】提取字符串:
${string:position} 从某出提取之后的内容
${string:position:length} 从某处提取指定长度的内容
【2】替换内容
${var/a/b} 将var中第一个 a 替换为 b
${var//a/b} 将全部 a 替换为 b
【3】计算变量长度
${#var} 可计算出变量值的长度
【4】属组的表示
${var[@]} 或 ${var[*]} 都可以表示整个属组
${var[0]} 得到 第一个元素,${var[1]} 第二个...
${#var[@]} 或 ${#var[*]} 得到 数组元素数量
${#var[0]} 得到 第一个元素 的长度),${#var[3]} 得到 第四个元素 的长度)
$(())和%[]
这两个都是用来做整数运算的
【1】常用运算符号
+ - * / 加、减、乘、除
% 余数运算
& | ^ ! AND、OR、XOR、NOT运算
【2】常用比较符号
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于