myfreax

Amber 可编译为 Bash 的编程语言

Bash 脚本需要改进?也许不需要,但 Amber 认为它至少可以让你使用高级编程语言编写 bash 脚本并且 Amber 语言可以在编译过程处理许多bug和错误

4 min read
By myfreax
Amber 可编译为 Bash 的编程语言
Amber 可编译为 Bash 的编程语言

Bash 脚本需要改进吗?也许不需要,但 Amber 认为它至少可以让你用高级编程语言编写 bash 脚本。

高级编程语言是更接近人类可读的语言,换句话说,就是更容易理解和编写代码的语言。因此,Amber 可让您更轻松地使用高级编程语言编写 Bash 脚本。

Amber 一种可编译为 Bash 的编程语言

🚧
该项目处于开发初期,目前仅有 alpha 版本。您可以尝试一下,但不要将其用于生产环境。

这就是 Amber。您使用现代高级编程语言编写脚本,然后将其编译为 bash shell 脚本。就像您首先运行 bash 脚本一样。

Amber 是基于 ECMA 脚本语法设计的。ECMA 旨在标准化通用脚本语言的语法。这样,您就可以在遵循 ECMA 语法的各种脚本语言中获得熟悉的语法。

因此,你需要将脚本编写成高级语言,然后将其编译成 bash 脚本。你可以直接运行 amber 脚本:

amber script.ab

如果您喜欢,您可以将 Amber 脚本编译为 bash shell 脚本,然后在任何您想要的地方运行这个 bash shell 脚本。

下面是一个官方 Amber 语言的脚本示例,它定义一些变量,打印一个文本字符串,执行条件检查以及遍历数组:

// Define variables
let name = "John"
let age = 30

// Display a greeting
echo "Hello, my name is {name}"

// Perform conditional checks
if age < 18 {
    echo "I'm not an adult yet"
} else {
    echo "I'm an adult"
}

// Loop through an array
let fruits = ["apple", "banana", "cherry", "date"]
echo "My favorite fruits are:"
loop fruit in fruits {
    echo fruit
}

然后 你可以运行命令 amber test.ab test.shtest.ab 编译成 test.sh Bash脚本,命令会在当前目录生成 test.sh

amber test.ab test.sh
__0_name="John";
__1_age=30;
echo "Hello, my name is ${__0_name}";
if [ $(echo ${__1_age} '<' 18 | bc -l | sed '/\./ s/\.\{0,1\}0\{1,\}$//') != 0 ]; then
    echo "I'm not an adult yet"
else
    echo "I'm an adult"
fi;
__AMBER_ARRAY_0=("apple" "banana" "cherry" "date");
__2_fruits=("${__AMBER_ARRAY_0[@]}");
echo "My favorite fruits are:";
for fruit in "${__2_fruits[@]}"
do
    echo "${fruit}"
done

使用 amber 编写脚本,你可以在不同的操作系统与 shell 环境获得相同的结果。

Amber 还旨在为您提供一种类型安全和运行时安全的编程语言,可以处理编译过程中的错误和运行时错误。

它抛出的警告比处理 bash 脚本语法错误时的胡乱猜测要容易理解得多。通常 bash 的语法错误,意外的文件结尾,都不足以理解 bash 脚本中的语法错误。

这个功能本身可以为那些刚接触 Bash 脚本的人省去很多麻烦。Amber 是一个根据 GPL 3.0 许可的开源项目。

Linux 安装 Amber

要在 Linux 安装 Amber 语言,您可以运行下面这个 bash 脚本使用 curl 安装它。但您需要 sudo 访问权限

curl -s "https://raw.githubusercontent.com/Ph0enixKM/AmberNative/master/setup/install.sh" | bash

Amber 有相当不错的文档,可以帮助您开始使用这种脚本语言。

Amber The Programming Language
Amber The Programming Language

结论

看来 2024 年我们将看到更多针对 Gen-Z 量身定制的新工具。它让我想起了Warp 终端,它适用于那些不习惯使用传统 Linux 终端的人。

与 Warp 一样,Amber 也适用于那些想要进入云和 DevOps 领域但又不必费心学习和处理经典 bash 脚本的新时代技术人员。

您可能会对此嗤之以鼻,但有一类新型 DevOps 可能从未见过 Linux 终端,或者至少很少见到。他们致力于开发抽象底层机制的工具。虽然经验丰富的系统管理员可能会说这可以通过一堆 bash 脚本来完成,但这些工具让事情变得更容易。

Amber 并不适合所有人。它绝对不适合经常编写 bash 脚本的人。我们认为您必须先忘记 bash 脚本才能使用 Amber。

但对于那些不太熟悉 bash 脚本但又必须在工作流程中编写脚本的人来说,它可能是一个工具选择。

Related Articles