面向对象的 Unix shell 至少具有 LINQ 功能?

面向对象的 Unix shell 至少具有 LINQ 功能?

嗯,“至少”更确切地说——这将是完美的;-) 有类似的问题——*nix 的面向对象 shell。对我来说,与 bash 的相似性不是问题。

我想要一些简单的 OOP 加 LINQ。目前我只知道http://www.scsh.net/但因为语法有点矫枉过正。

也许我会通过例子向你展示我的意思:

run("ls ./").foreach(it => println(it.filesize))

或者

run("find -r *.jpg") \
 .filter(it => it.datetime<today.adddays(-2)) \
 .foreach(it => run("gimp ${it.filename}"))

还有比 scsh 更接近这个“梦想 shell”的东西吗?

我为什么要问?因为我编写的程序越多,我就越倾向于函数式语言(C++ -> C#+LINQ -> Scala -?-> Clojure),昨天我不得不在 bash 中编写简单的 find+print 循环,这很痛苦。男人很容易被所有功能性的东西宠坏;-D

答案1

rush看起来很相似,例如允许你写

processes.filter(:cmdline => /mongrel_rails/).kill

或者

myproj['**/*.rb'].search(/^\s*class/).lines.size

但看起来相当死的。最后,我会选择只使用一些脚本语言来执行 shell 任务(而不是相反),例如,如中所述《使用Python创建UNIX命令行工具》

编辑还有一个正在积极开发的面向对象的 shell,尽管与rushs 的概念有很大不同,oh.)

编辑2刚刚偶然发现pbs,一个 Python 包装器,使使用 Python 更直接地执行类似 shell 的任务

答案2

您必须为 LINQ 内容编写自己的对象,但将 bash 扩展到 OOP 非常容易。查看https://github.com/uudruid74/bashTheObjects

相关内容