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

app sarsh

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

1 个不稳定版本

0.0.0 2023年3月22日

#59#subset

MIT 许可证

37KB
880

Irsh

描述

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

功能

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

限制

  • 可能在某些边缘情况下失败
  • 仅实现&>&;重定向
  • 仅支持${alphanum},不支持$@或$*或任何其他形式
  • 如果子命令未关闭,则无限循环
  • 如果$()没有"",则无限循环

目标

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

无运行时依赖