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