我想知道 bash 中的单括号。我知道它们用于在子 shell 中执行命令以及它们用于创建数组,但它们是否用于其他任何用途?
引起我注意的一件事是,当您使用 in 变量赋值时,例如
var=(hello)
echo $var # hello
Run Code Online (Sandbox Code Playgroud)
bash 不会产生错误或任何东西,并且输出与 if 相同
var=hello
Run Code Online (Sandbox Code Playgroud)
这两个变量定义相同还是有区别?
jim*_*mij 21
在您的情况下,括号()
用作数组定义,例如
a=(one two three) # array definition
echo "${a}" # print first element of array a
echo "${a[0]}" # print first element of array a
echo "${a[1]}" # print *second* element of array a
echo "${#a[@]}" # print number of elements in array a
Run Code Online (Sandbox Code Playgroud)
如果将单个变量放入数组,那么您只有一个包含单个元素的数组。
回答你的另一个问题括号是否也用于其他任何东西:有很多情况bash
与其他字符结合使用,它们可以用作:
$()
<()
和>()
(command)
(())
fun () { echo x; }
?()
, *()
, +()
, @()
, !()
(仅当extglob
启用时)