Shell函数定义:为什么左大括号后面有一个空格?

Ben*_*oit 18 shell-script

你可能知道那个叉子炸弹

 :(){ :|:&};: #WARNING: harmful code
Run Code Online (Sandbox Code Playgroud)

我想知道为什么有必要解析,在大括号后包含一个空格。

rus*_*ush 13

{}

          { list; }
Run Code Online (Sandbox Code Playgroud)

将命令列表放在大括号之间会导致列表在当前 shell 上下文中执行。没有创建子shell。以下列表中的分号(或换行符)是必需的。

除了创建子shell之外,由于历史原因,这两种构造之间存在细微差别。大括号是保留字,因此必须用空格或其他 shell 元字符将它们与列表分开。括号是运算符,即使它们没有通过空格与列表分开,也会被 shell 识别为单独的标记。

//来源

  • @donothingsuccessfully 函数体 * 是 * 命令分组。 (3认同)