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

app birsh

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

1 个不稳定版本

0.0.0 2023年3月20日

#60#子集

MIT 许可证

25KB
605

Irsh

描述

类似于 Bash 的解释器,也许还可以作为编译器?设计为具有最小依赖项的交互式 shell,可能不支持所有 Bash 语法。

特性

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

限制

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

目标

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

无运行时依赖