unix脚本的最佳lisp /方案是什么?

时间:2010-11-16 00:26:41

标签: unix lisp

标题几乎说明了一切。我使用clojure作为我的主要项目,但它不是一个好的脚本语言,因为jvm启动缓慢,并且不能很好地与一些unixy事物接口。所以我正在寻找一种能够很好地用作脚本语言的lisp,例如具有良好的界面来管理unix进程,轻松使用async io等等。

7 个答案:

答案 0 :(得分:14)

Scsh(代表“Scheme shell”)可以在http://www.scsh.net获得。它是“Scheme 48(符合R5RS的新技术方案系统)的变体......旨在编写真实的独立Unix程序和shell脚本。”

可以在http://www.theillien.com/Sys_Admin_v12/html/v11/i01/a2.htm找到有关系统管理的精彩介绍。

答案 1 :(得分:9)

各种常见的unix工具都具有Guile的绑定。如果您的目标是自动化这些工具,那么这可能是个不错的选择。

答案 2 :(得分:8)

Racket是一个非常好的Scheme实现。它非常强大。其中一个介绍是从头开发Web服务器。

答案 3 :(得分:7)

答案 4 :(得分:4)

CLISP是Common Lisp的一个实现,对Unix脚本很有用。

CLISP有许多扩展,使其对脚本有用:Unicode支持,正则表达式,各种命令行选项,套接字流,管道,......

此外,CLISP的占用空间相对较小,用C语言编写,便于携带并快速启动 - 用于Common Lisp。

答案 5 :(得分:1)

使用Elisp进行交互式使用的Eshell:

“Eshell能够调用几乎所有在Emacs中加载的elisp函数。这种灵活性是无与伦比的;没有任何shell能够逼近Eshell可以做的事情。事实上,这个功能被大量使用(并鼓励!如果你想在Emacs中打开文件foobar.txt,你只需调用find-file foobar.txt,然后Eshell会将它映射到elisp调用(find-file“foobar.txt”)并为你打开文件。 。“

来自http://www.masteringemacs.org/articles/2010/12/13/complete-guide-mastering-eshell/

答案 6 :(得分:1)

我在这个页面上跑了几次,同时寻找一种很好的方法将一些越来越多的unweildy bash脚本移植到一个更健全的语言中。由于这些脚本已经调用了一些Racket脚本,因此删除一层间接并将Racket用于所有内容是有意义的。

经过一番搜索,我偶然发现了Racket的shell-pipeline包。来自文档:

  

该库使外部程序和球拍功能的unix风格管道变得容易。您可以像(run-pipeline '(cat /etc/passwd) '(grep root) '(cut -d : -f 1))一样简单地编写内容,它会将"root\n"打印到stdout(在unix系统上)并返回0。要将输出作为字符串,请以相同的方式使用run-pipeline/out。您还可以将球拍功能放入管道中。如果您的grep球拍实施名为my-grep,则可以(run-pipeline '(cat /etc/passwd) `(,my-grep root) '(cut -d : -f 1))获得相同的结果。因此,您可以在Racket中编写各种过滤器函数,而不是使用shell命令。