Linux中大括号,小括号,中括号
test 条件表达式。
·
一、大括号
{}
使用场景:
- 父shell域规整代码,或叫多命令集合:左大括号后必须有空格,右大括号前必须有分号
{ code;}
。作用域还是在父shell。 - 变量名的定界符。
${变量名}
取变量值。 - 大括号扩展。
echo a{1,2,3}b
,即a1b a2b a3b
。{1..10}
一、小括号
()
使用场景:
- 开启子shell。见Linux中父shell 与 子shell
$()
返回输出值子shell()
中的标准输出和错误。- 构造数组。
a=(1 2 3)
,b=([0]=1 [3]=5)
(())
使用场景:
- 计算表达式,
((表达式))
等价于let 表达式
,仍是在父shell中。表达式结果不是逻辑0或1的时候,该表达式不报错的退出状态永远是0。 - 上述表达式可以是整数相关的条件表达式,使得 a.
(,<
等不用加反斜杠;b.>,<,!=
可应用于整数,并且>=,<=,==
也可使用 c. 支持&&
和||
表达 代替-a
,-o
三、 中括号
[]
使用场景:
- 代替表达式取值时的双小括号
$((表达式))
等价于$[]
,如a=$((10/3))
等价于a=$[10/3]
- 条件判断。
[ 条件表达式 ]
,等价于test 条件表达式
。中括号前后要有空格。条件成立,则退出状态为0,否则为1。 - POSIX字符集表示,tr后使用。
[[]]
使用场景:
- 用于条件判断,使得:a.
(,<
等不用加反斜杠;b. 保留字符串首尾有空格时,也不需要加双引号 c. 判判断字符串相等或者不等时,右侧支持通配模式。*
代表0或多个字符,?
代表一个字符 d. 支持&&
和||
表达 代替-a
,-o
P146 - POSIX字符集表示,grep,egrep,tr等命令中使用。
更多推荐
已为社区贡献2条内容
所有评论(0)