shell括号用法汇总
总结:
${} 等同于 $ 作用:获取变量值
$[] 等同于 $(()) 作用:数学运算
$() 等同于 `` 作用:命令嵌套
[] 等同于 test 作用:条件判断,用于判断表达式的返回值是0或是非0
[[]] 等同于 [] 作用:[[]]是[]的增强版
(())主要用法有三种:
1)与$结合使用进行数学运算$(( ))
2)在for循环命令中控制循环,类似于c语言
3)改变变量的值,且不需要$引用
${}:作用是获取变量的结果,一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的边界范围。
$[]:进行数学运算
$():命令替换操作,同反应引号``,即命令的嵌套使用,将$()中包括的命令执行结果向外传递。 举例:echo today is $(date "+%Y-%m-%d")
${}与$:$与${}都是用来引用变量的,只不过${}可以指定变量边界,也可用于对字符串变量进行截取等处理
$[]和$(( )):$[]和$(())的作用一样,都是进行数学运算的,支持±*/%,并且在$[]和$(( ))中使用变量不需要$引用,可以直接使用变量名
同样可以进行数学运算的还有expr命令和bc命令
bc是linux的计算器,是交互式命令,但是bc支持从标准输入中读取参数及逆行运算,但是bc不支持从命令行中读取运算式
$()和``:$()和``的作用一致,都是用来做命令替换用,一般用于将命令返回的结果传递给变量
a=$(ls /home/)
a=`ls /home/`
a保存的是上述命令的返回值,即一个目录列表
(( )):(( ))的主要用法大概有三个:
1)与$结合使用进行数学运算$(( ))
2)在for循环命令中控制循环,类似于c语言
3)改变变量的值,且不需要$引用
[]与test:[]是test命令的另一种形式,用于判断某个表达式的返回值是0或者非0,常用于if命令的判断条件,test $a == "linux" 等效于 [ $a == "linux" ]
注意"[“后和”]“前都需要有空格,并且”=="两边也都要有空格
[[ ]]:[[ ]]是[]的增强版,其返回值也是0或者非0
1)在[[]]中使用><等符号不需要转义字
2)支持&&和||,但是仅仅支持==和!=的连接判断
3)[[ ]]在比较字符串支持正则匹配和通配符匹配