在bash中如何使用双括号或单括号、圆括号、花括号

问题我在使用Bash时,对于括号、圆括号和花括号的用法感到困惑,以及它们的双括号和单括号形式之间的区别。有没有清晰的解释?

回答方括号在 Bash 中,test 和括号 [ 是 shell 内置命令。在命令行里 test expr 和 [ expr ] 的效果相同。

双方括号 [[ 是一个 shell 关键字,它启用了额外的功能。例如,你可以使用 && 和 || 代替 -a 和 -o,并且还有一个正则表达式匹配运算符 =~。

此外,在简单的测试中,双方括号的计算速度似乎比单方括号快得多。

花括号花括号除了用来界定变量名外,还用于参数扩展,因此你可以执行以下操作:

•截断变量的内容

•进行类似于 sed 的替换

•使用默认值

•以及更多

此外,花括号扩展可以创建字符串列表,这些列表通常在循环中被迭代:

请注意,前导零和增量特性在 Bash 4 之前是不可用的。

圆括号双圆括号用于算术运算:

它们允许你在整数和数组变量前省略美元符号,并且可以在运算符周围添加空格以提高可读性。

如果双圆括号 ((...)) 其中表达式的值非零,则返回 0(真),否则返回 1(假),所以:

圆括号用于创建子 shell。

此外,它们还用于创建数组。

参考•stackoverflow question 2188199•type [[