a lighting shell
- 写起来像
js
- 用起来像
bash
- 跑起来像 光
- 放那里像 气
- 动起来像 水

为什么选择Lumesh
对比项目 |
lume |
bash |
dash |
fish |
速度(百万循环) |
***** |
*** |
**** |
* |
交互 |
**** |
** |
* |
***** |
语法 |
***** |
** |
* |
**** |
体积 |
**** |
*** |
***** |
** |
错误提示 |
***** |
* |
* |
*** |
错误处理 |
***** |
* |
* |
* |
内置库 |
***** |
|
|
* |
按键绑定 |
☑ |
|
|
☑ |
结构化管道 |
☑ |
|
|
|
AI交互 |
☑ |
|
|
|
快速概览
交互
AI complete |
error hint |
 |
 |
语法高亮
按键绑定
用户可自定义快捷键绑定命令,例如:
alt + m 保存命令书签 |
alt + x 用fzf搜索并执行书签 |
 |
 |
性能
其中fish无法成功完成百万次循环
|
lume |
bash |
dash |
fish |
版本 |
v0.3.8 |
v5.2.037 |
v0.5.12 |
v4.0.2 |
体积 |
4.3 MB |
9.2 MB |
153.8 KiB |
21.64 MB |
由于fish无法完成百万次任务,我们取值它完成一半任务的时间
语法
语法友好易用。
let a = (2+3)*5 print "a=" a
let b,c = 1,2 println b c println(b,c)
|
let arr = [10, "a", True] let arr_b = 0..10
arr[0] arr_b.1
arr[1:3] arr[::2] arr[-1:]
[1,24,5,[5,6,8]][3][1]
|
let dict = {name: "Alice", age: 30}
dict.name dict[name]
|
if a>0 && b==0 { print OK }else{ print BAD }
|
match a { 10 => print "ten", 20 => print "twenty" _ => print other }
|
let addone = x -> x+1 let add = (x,y) -> x+y
addone(2) add(3,4)
|
function函数
支持高阶函数
支持函数嵌套
支持默认参数
支持剩余参数收集
fn add(x,y=0,*other){ x+y+len(other) }
add(3) add(3,4) add(3,4,5,6,7)
|
let e = x -> print x
3 / 0 ?: e
3 / 0 ?. 3 / 0 ?? 3 / 0 ?+ 3 / 0 ?! 3 / 0 ?: 0
|
错误捕获可以在表达式和整个函数声明中使用。
智能管道可以自动适应输入和输出格式,智能支持字节管道和 结构化数据管道。
结构化管道示例 :
ls -l | parse.cmd() | where( int C4 > 4000 )
let thead = [mode,i,user,group,size,mday,mtime,name] ls -l | parse.cmd(thead) | where(int size > 400) | select([name,size,mtime])
fs.ls -l | where(mode==420) | select(name)
|
更多详细信息,请参见手册。
手册
测试脚本