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