快速开始

ambot-script 的词法语法分析遵循了 python 风格,支持与 Python 语法相同的变量类型、变量声明、函数声明、函数调用等功能。

在已经安装了最新版本的 ambot-service 下,可以使用 apy 程序执行 ambot-script 脚本,或直接将一个 .apy 文件赋予可执行权限后执行。

在低版本的 ambot-service 下,不提供 apy 程序,因此请注意保证使用最新版本的 ambot-service(v1.3.8 或更高版本,v1.4.0-rc.16 或更高版本)

Hello World!

那么,来一个最简单的脚本吧!执行以下脚本

print("Hello World!")

image-20220228152642224

输出是最基本的功能了,与 python 类似,ambot-script 的 print 函数也提供了对于 end 和 sep 参数的支持

另外,为了方便,ambot-script 的 print 函数额外支持传递 color 参数,目前支持 RED YELLOW GREEN BLUE BOLD UNDERLINE

image-20220228153946366

执行程序

如果想要执行程序,那么可以使用 execrun 命令,二者的区别在于 exec 会将结果直接输出到屏幕上并在非 0 退出时报出异常退出,而 run 则会将退出码、输出等返回让你自己来决定做什么。

正常的结果

image-20220228155232749

  • exec 和 run 也可以接收一个 string list,但这种语法下不支持 bash 的高级功能(重定向、管道等)
  • exec 在执行失败时会直接抛出异常(ambot-script 的实现没有 try-execpt 的功能,因此异常意味着直接终止程序运行)
  • exec 在执行失败(exit code 不为 0)时也会正常返回 Result 对象,对这一对象进行 assert 会抛出异常

在使用 run 时,应始终配合 assert 以防止意外出现,assert(result) 等同于 assert(result.code==0, result.error == None)

工作目录切换

程序默认的工作目录等同于 run 的目录,在绝大多数命令中如果使用相对路径都是使用工作目录作为主目录的。

ambot-script 提供了 cdpwd内置函数用于设定和获取工作目录,同时提供了 root 预定义变量用于获取程序启动时最初的工作目录

image-20220301102442210