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)[[ ]]在比较字符串支持正则匹配和通配符匹配



posted @ 2024-01-26 14:56  逐梦北京  阅读(21)  评论(0编辑  收藏  举报