Shell 中各种括号的作用:()、(())、[]、[[]]、{}

引言

Shell 脚本中的括号种类繁多,不同的括号在不同的情况下有着不同的用途。在本文中,我们将介绍括号的种类以及它们的作用。

圆括号 ()

圆括号用来执行命令,并将命令的输出作为参数传递给 Shell。圆括号中的命令会在子 Shell 中执行,因此圆括号中的变量和环境变量对外部 Shell 是不可见的。

$ echo $(ls)

以上命令会将当前目录下的文件列表输出。

双圆括号 (())

双圆括号主要用来进行算术运算。双圆括号中的变量名不需要使用 $ 符号,而且可以使用 C 语言风格的运算符。

$ a=10
$ ((a++))
$ echo $a

以上命令会将 a 的值增加 1,然后输出 11。

方括号 []

方括号用来进行条件测试。方括号中的命令会在当前 Shell 中执行,因此方括号中的变量和环境变量对当前 Shell 是可见的。

$ [ -f test.txt ]
$ echo $?

以上命令会测试当前目录下是否存在 test.txt 文件。如果存在,返回值为 0;否则,返回值为非零。

双方括号 [[]]

双方括号用来进行条件测试,与方括号类似。但双方括号中的参数可以使用模式匹配,而方括号中的参数不支持模式匹配。

$ [[ "test.txt" == *.txt ]]
$ echo $?

以上命令会测试 "test.txt" 是否与 *.txt 模式匹配。如果匹配,返回值为 0;否则,返回值为非零。

花括号 {}

花括号主要用来生成序列。花括号中的序列可以用逗号分隔,也可以使用省略号表示范围。

$ echo {1..5}
$ echo {a..z}

以上命令分别会输出 1 到 5 的数字序列和 a 到 z 的字母序列。

结论

本文介绍了 Shell 中各种括号的作用,包括 ()、(())、[]、[[]]、{}。不同的括号在不同的情况下有着不同的用途,掌握这些括号的使用方法可以使 Shell 脚本编写更加高效。

Shell 中各种括号的作用:()、(())、[]、[[]]、{}

最后编辑于:2023/12/05作者: 心语漫舞