中括号
[ ]
和test
是bash的内部命令,[[ ]]
是shell的条件判断关键字。1
2
3
4
5
6$ type [
[ is a shell builtin
$ type test
test is a shell builtin
$ type [[
[[ is a shell keyword[ ]
和test
是等价的,用于评估条件表达式。可以使用man [
或help [
查阅帮助文档。1
2
3
4
5
6$ help [
[: [ arg... ]
Evaluate conditional expression.
This is a synonym for the "test" builtin, but the last argument must
be a literal `]', to match the opening `['.[[ ]]
关键字可以屏蔽shell特殊符号,比如&&
、||
、>
和<
可以被认为是条件判断符而不是重定向符。[ ]
中使用-a
和-o
表示逻辑与和逻辑或,[[ ]]
中则使用&&
和||
。
小括号
$()
用于命令替换。- 双小括号
(( ))
:在比较过程中使用高级数学表达式。
大括号
请阅读:All about {Curly Braces} in Bash
${}
用于引用变量。与
$var
相比,${var}
是一种消除歧义的措施,比如:1
2
3
4
5
6
7
8
9
10
11$ var=abc
$ vartest=ABC
# $var引用变量'var'
$ echo $var
abc
# 引用变量'vartest'
$ echo $vartest
ABC
# 引用变量'var'并在其后加上'test'字符
$ echo ${var}test
abctest{}
表示分组。