用途
本技能提供 Amber(amber-lang.com)的全面知识。Amber 是一门现代编程语言,可编译为 Bash 脚本。可用于编写、审查、调试、转换和解释 Amber 代码。当用户要求编写 Amber 脚本、调试 Amber 代码或解释 Amber 语言时使用。
主要能力
Amber 编译为兼容 Bash 3.2+ 的脚本,提供受 ECMAScript 启发的语法、类型安全和强制错误处理。
命令行接口:
amber run <file.ab>amber build <in.ab> <out.sh>amber check <file.ab>amber eval '<code>'
Shebang:#!/usr/bin/env amber;文件扩展名:.ab。
类型:Text、Int、Num(需要 bc)、Bool、Null、[T](类型化数组,不可嵌套)。
关键语法模式:
let x = 10—— 变量const Y = 20—— 常量fun add(a: Int, b: Int): Int { }—— 类型化函数fun risky(): Int? { fail 1 }—— 可失败函数(? 表示可能失败)pub fun exported(): Null { }—— 公开/可导出函数fun modify(ref arr: [Int]) { }—— 引用传参$ command $—— shell 执行$ cmd $ failed(code) { }—— 错误处理(强制)$ cmd $?—— 传播失败import { fn } from "std/module"—— 标准库导入import { fn } from "./file.ab"—— 本地导入main (args) { }—— 入口点
修饰符:silent(抑制输出)、trust(跳过错误处理)、sudo(提权)。
控制流:if/else、if { cond: expr }(链式)、三元(x then a else b)、loop、for i in 0..n、while。
使用方式
代码风格指南:
- 始终处理错误——对每个可失败操作使用 failed、succeeded、exited 或 ?
- 使用类型化函数签名以提升清晰度
- 优先使用标准库而非原始命令(例如用 file_read 而非
$ cat file $) - 使用 main 块,使脚本在被导入时也能正确工作
- 对不变的值使用 const
- 避免 trust——显式处理错误
- 使用范围(0..n)而非手动计数器循环
适用场景
适用于需要编写、审查、调试、转换或解释 Amber 代码的场景,尤其是将 Amber 编译为 Bash 脚本、利用类型安全与强制错误处理构建 shell 脚本时。
限制
Num 类型需要 bc。类型化数组不可嵌套。资料未提供其他平台、收费或价格信息。
附加参考
- 详细语法、类型、运算符和所有语言特性:references/syntax.md
- 标准库文档:
- references/stdlib-text.md —— 文本操作(split、replace、regex、trim、parse 等)
- references/stdlib-array.md —— 数组操作(find、pop、shift、contains 等)
- references/stdlib-fs.md —— 文件系统(read、write、glob、chmod、extract 等)
- references/stdlib-env.md —— 环境、I/O、样式(环境变量、输入提示、彩色输出等)
- references/stdlib-math-date-http.md —— 数学、日期/时间和 HTTP 操作
- 真实示例脚本:references/examples.md