错误与退出码
诊断包含来源、行号与列号:
interactive:1:6: undefined variable $missing普通命令返回非零退出状态时,当前脚本或交互提交批次停止执行。
条件位置允许检查非零退出状态,但程序不存在等启动错误仍会导致失败。
管道返回最右侧失败阶段的非零退出状态,即使最后一个阶段成功也一样,包括上游因 SIGPIPE 退出的情况。
所有阶段的子进程都会被回收。
exit 接受 0 到 255 的退出码,并立即退出,即使它位于函数或嵌套表达式中;默认退出码为 0。
遇到顶层多余闭括号()、] 或 })时,reader 消耗这个字符、报告错误并继续读取。
表达式内的括号类型不匹配会报错;未完成的表达式会指出未闭合的开括号。
读取错误使脚本退出码为 2,运行时失败或显式退出可以覆盖它。命令不存在时使用 127,权限不足时为 126,其他语言错误为 2。
浏览器中,语法错误会保留草稿并阻止整批执行;修改草稿或清空后可继续提交。运行错误停止当前批次,后续新输入仍可执行。未提供的命令会给出能力限制提示。会话退出后,可用重置按钮重新开始。
普通失败可以用 try/catch/finally 处理。$? 保存完整结果,区分信号终止与数值相同的正常退出。capture-call、wait 返回可查询结果,check 对其应用失败终止策略。详见执行结果与后台任务。