545 字
3 分钟
lunash: luna shell
why not lua-shell
我偶尔会忍不住冒出来一个想法:为什么lua不能作为shell来使用
这听起来真的很涩情,反正都是脚本语言,反正很轻量,反正有各种bash没有的便利功能和特性
唯一的问题可能是:用lua的语法来写会不会比bash的语法写起来更复杂,毕竟bash里的split token可是任意长度的空格!还有什么比这更简洁的吗
不过我暂时不打算解决这个问题,或许不用空格分割也是某种优势,他能提供更明确的scope
设想
bash-like的shell,但是使用lua语法和函数代理式的二进制调用
目前一切都停留在非常早期的构想阶段,我暂时准备把目标平台限定为带lua >= 5.3环境的常见Linux系统
探索lua究竟能有多灵活!
-- 函数代理式的二进制调用-- 赞美unix哲学mkdir "dir_1"grep("pattern", "a.txt")
-- 原生lua控制流与内置库for line in _lua.io.lines("example.txt") do print(line)end
-- bash-like的环境变量管理export("proxy","http://localhost:8080")
-- 或者更lua风格一点_env["proxy"] = "http://localhost:8080"
-- alias准备直接用lua function替代function gcl(...) git("clone", "--recurse-submodules", ...)end碎碎念
感觉可能得手动实现一个交互式tty而不能直接复用lua解释器的交互模式,感觉有点可惜
以及感觉比较重要的可能是一些内置工具的实现,比如to_table或者bash2luash这样的
to_table的灵感来自于bash里的($(command)),事实上,如果没有类似的转换那将始终是字符串操作,会损失很多lua特性
好消息是我觉得这个实现起来不难,正则一下的事
gh仓库
Waiting for api.github.com...
我去重名了
我刚刚发现了一个同名的仓库,他不仅名字一样,而且在二进制的包装思路上也一样
人们总会在不同的大脑中产生相似的想法huh
Waiting for api.github.com...
inspired by Python’s sh module
事实是,我完全没看过类似的东西,我也蛮好奇为什么我会想到
难道他真的是天才?!
lunash: luna shell
https://blog.monblog.top/posts/lunash-start/