跳转到内容
核心概念shell-scripting

Bash 花括号命令组

使用花括号把多条命令作为一个整体执行,并让统一的输入输出重定向作用于整组命令。

状态
已审阅
难度
入门
平台
linux · raspberry-pi-os

**花括号命令组(brace group)**使用 { list; } 把一组命令作为一个整体,并在当前 Shell 环境中执行。

Terminal window
{
date
uname -srmo
} >> "$HOME/system-check.log" 2>&1

末尾的重定向作用于组内全部命令。

  • { 和第一条命令之间必须有空白或换行。
  • } 是保留字,前一条命令必须以分号或换行结束。
  • 花括号本身不创建子 Shell;组内变量赋值会影响当前 Shell。
  • ( list ) 才是在子 Shell 环境中执行的另一种分组方式。
Terminal window
REPORT="$HOME/group-demo.log"
{
printf '[date]\n'
date
printf '[kernel]\n'
uname -srmo
} > "$REPORT" 2>&1
cat -- "$REPORT"

该示例只创建或覆盖家目录中的演示文件,不需要 root 权限。

  • {date;} 不是合法的 Bash 花括号命令组,因为保留字周围缺少必要分隔。
  • 这不是“数组”或“代码块变量”,正式术语是命令分组。
  • 组内任意命令失败,并不会自动阻止后续命令;脚本仍需明确处理退出状态。