跳转到内容

认识 parsh

parsh 意为 parenthesis shell。它是一个命令行与脚本共用同一种小巧 Lisp 方言的 Linux Shell。

提示符为 $ ()。输入 str hello 并按 Enter 即可求值 (str hello)。输入未完成时 Enter 换行,Ctrl+J 始终换行。

(let name world)
(defn greet (who)
(str "hello, " $who))
(greet $name)

交互环境会显示返回值 "hello, world"。脚本使用完全相同的语法;在 Linux 上,表达式还可以启动真实程序、构建管道并重定向文件。

Shell 脚本常常把逻辑交给 awk、sed 或内联的解释器,每多一层就多一套引号规则要处理。parsh 把逻辑留在脚本里:算术、列表与映射、函数和循环像通用脚本语言一样可用,外部命令、管道与重定向则共用同一套语法。值不会被隐式拆词,也不会被悄悄做通配符展开,脚本写的是什么,执行的就是什么。

(let count (int (| (find . -name "*.rs") (wc -l))))
(echo "rust files: $count; doubled: $(* $count #2)")

生成和检查都只需要记住一套语法、一套规则,这正是 parsh 脚本对 AI 友好的地方。后续计划支持引入库,届时脚本可以像 Python 模块那样复用现成的代码。

parsh 目前是早期实现,版本为 0.1.0。原生版本支持 Linux 前台任务、交互程序、管道与隔离的后台任务。交互式 Tab 支持命令、路径和变量补全。引入库和持久化配置属于后续工作。浏览器终端提供语言核心、29 条 coreutils 命令、临时文件和命令组合。

使用木兰宽松许可证,第 2 版。