答案1
{}
{ list; }
将命令列表放在大括号之间会导致该列表在当前 shell 上下文中执行。没有创建子shell。列表后面需要分号(或换行符)。
除了创建子 shell 之外,由于历史原因,这两种结构之间还存在细微的差异。大括号是保留字,因此必须用空格或其他 shell 元字符将它们与列表分隔开。括号是运算符,即使它们没有通过空格与列表分隔,也会被 shell 识别为单独的标记。
//来源
{}
{ list; }
将命令列表放在大括号之间会导致该列表在当前 shell 上下文中执行。没有创建子shell。列表后面需要分号(或换行符)。
除了创建子 shell 之外,由于历史原因,这两种结构之间还存在细微的差异。大括号是保留字,因此必须用空格或其他 shell 元字符将它们与列表分隔开。括号是运算符,即使它们没有通过空格与列表分隔,也会被 shell 识别为单独的标记。
//来源