1 个不稳定版本
0.0.0 | 2023年3月22日 |
---|
#59 in #subset
37KB
880 行
Irsh
描述
类似Bash的解释器,可能也是编译器?设计为用于具有最小依赖的交互式shell,可能不会支持所有Bash语法。
特性
- 支持独特的bash变量/函数声明语法
- 始终假设在$之后有一个{,并且括号/括号正确关闭
- 忽略由于未关闭的块/引号而产生的边缘情况,并崩溃以实现更简单(更快?)的实现
- 没有默认值的函数/程序参数被认为是强制性的
- 只有一级子命令
- 子命令只能在双引号字符串的开头使用
- 子命令仅限于变量/单词和重定向符号
- 不支持嵌套引号
- 不支持(目前?)多行字符串
- 声明变量时,值必须加引号
限制
- 可能在某些边缘情况下失败
- 仅实现&>&重定向
- 仅支持${alphanum},不支持$@或$*或其他任何形式
- 如果子命令未关闭,则会产生无限循环
- 如果$()没有"",则会产生无限循环
目标
- 解析具有作用域和默认值的bash变量
- 通过
function
关键字解析bash函数 - 支持外部命令的调用
- 实现基本bash功能的一个子集
- 支持stdout/err重定向