Bash 中大括号和普通括号之间的区别?

Bash 中大括号和普通括号之间的区别?

Bash 中的大括号和普通括号有什么区别?

仅供参考...我没有在相关问题列表中找到它,也无法在问题搜索中找到它。如果已经有人问过这个问题,请告诉我。

答案1

括号用于参数扩展(${foo%123}),括号扩展可以是替代形式({foo,bar})或序列形式({1..25}),也可以是代码块形式({ foo ; bar ; })。

方括号用作比较命令([ "$foo" -lt 3 ], [[ $bar =~ ^123 ]]),用作 glob 中的范围或字符类(ba[rz], foo[[:alnum:]], qu[[=u=]]x),用作数组赋值的一部分(foo=([2]=3 4 5), foo[42]=bar),或在处理数组时用于参数扩展(${foo[@]})。

换句话说,它们是完全不同的。

答案2

相关内容