第 14 节

Hook 的构建四步骤

视频 + 讲义 ▶ 观看原视频

写一个 Hook 只需要四步:选时机、定目标、写脚本、返回退出码。整个机制的核心是退出码——这是 Hook 和 Claude Code 之间唯一的通信协议,没有中间人。

四步构建流程

Hook 收到的 JSON 数据结构

退出码的完整规则

⚠ 易错点:退出码 2 只在 PreToolUse 里有意义。PostToolUse 的 Hook 不管你返回什么退出码,工具已经执行完了,无法撤销。很多人搞混这一点,在 PostToolUse 里写阻止逻辑,完全无效。

📝 CH14 相关考题4 题

Q13

Claude Code Hook 配置中为什么强烈建议使用绝对路径而非相对路径?

A. 绝对路径的执行速度比相对路径快 10 倍以上
B. 相对路径不被 Hook 系统识别,会导致 Hook 失效
C. 降低路径拦截和恶意二进制植入的安全风险
D. 使用相对路径会导致 Claude Code 崩溃
✓ 答案 C:降低路径拦截和恶意二进制植入的安全风险
Q14

以下哪个是 Claude Code 中 PreToolUse/PostToolUse 之外的 Hook 类型?

A. FileWatch
B. CodeReview
C. UserPromptSubmit
D. AutoComplete
✓ 答案 C:UserPromptSubmit
Q15

Claude Code SDK 默认使用什么权限模式,如何授权写操作?

A. 默认完全写入权限,无需额外配置
B. 默认仅读取权限,写操作需传入 allowedTools 参数或全局配置
C. 默认无任何权限,所有操作均需手动授权
D. 权限继承自当前用户的系统权限
✓ 答案 B:默认仅读取权限,写操作需传入 allowedTools 参数或全局配置
Q16

/init 命令在 Claude Code 中的主要作用是什么?

A. 初始化新的 Node.js 或 Python 项目脚手架
B. 安装并升级 Claude Code 到最新版本
C. 分析代码库结构并自动生成 CLAUDE.md 项目配置文件
D. 重置所有 Claude Code 设置到默认值
✓ 答案 C:分析代码库结构并自动生成 CLAUDE.md 项目配置文件