#bash #解释器 #子集 #编译器

应用 sbash

Bash 解释器/编译器。将不支持所有功能。

1 个不稳定版本

0.0.0 2023年3月22日

#57#子集

MIT 许可证

37KB
880

Irsh

描述

类似 Bash 的解释器和可能编译器?设计为具有最少依赖的交互式 shell,将不支持所有 Bash 语法。

功能

  • 支持独特的 Bash 变量/函数声明语法
  • 总是假定在 $ 后面有一个 {,并且括号/括号正确关闭
  • 忽略由于未关闭的块/引号而引起的边缘情况,并崩溃以实现更简单(和更快?)的实现
  • 无默认值的函数/程序参数被认为是强制性的
  • 只支持一级子命令
  • 子命令只能用于双引号字符串的开始处
  • 子命令仅限于变量/单词和重定向符号
  • 不支持嵌套引号
  • 不支持(目前?)多行字符串
  • 声明变量时必须引用值

限制

  • 可能在一些边缘情况下失败
  • 仅实现 &> 重定向
  • 仅支持 ${alphanum},不支持 $@ 或 $* 或任何其他形式
  • 非闭合子命令将导致无限循环
  • 无 "" 的 $() 将导致无限循环

目标

  • 解析具有作用域和默认值的 Bash 变量
  • 通过 function 关键字解析 Bash 函数
  • 支持外部命令的调用
  • 实现基本 Bash 功能的子集
  • 支持 stdout/err 重定向

无运行时依赖