如何从OS X上的shell脚本运行Clozure CL(Lisp)?

M-V*_*M-V 8 lisp common-lisp

我尝试了以下方法:

$ cat args.sh
\#! /Applications/ccl/dx86cl64
(format t "~&~S~&" *args*)

$ ./args.sh 
Run Code Online (Sandbox Code Playgroud)

无法加载lisp堆映像 ./args.sh

我可以直接运行lisp罚款:

$ /Applications/ccl/dx86cl64
Welcome to Clozure Common Lisp Version 1.5-r13651  (DarwinX8664)!

? 
Run Code Online (Sandbox Code Playgroud)

是否可以编写shell脚本以使用Clozure CL运行lisp代码?我确信我做的事情很傻.

我安装的是:http: //openmcl.clozure.com/

Edg*_*gar 6

接下来查理查理马丁的回答以及随后的问题.这dx86cl64 --eval <code>将启动一个REPL,所以如果你想启动给定的脚本然后退出,只需将它添加到脚本的末尾:(ccl::quit).在您提供的示例中,这可以解决问题:

#! /bin/bash 
exec /Applications/ccl/dx86cl64 --eval '(progn (format t "hello script") (ccl::quit))'
Run Code Online (Sandbox Code Playgroud)

一个更好的脚本如下:

#! /bin/bash
exec /Applications/ccl/dx86cl64 -b -e '(progn (load "'$1'") (ccl::quit))'
Run Code Online (Sandbox Code Playgroud)

将其放入文件load-ccl-script.sh(或您选择的其他名称)中.然后以下交互工作:

$ echo '(format t "weeee!")' > a.lisp
$ sh load-ccl-script.sh a.lisp
weeee!
$ _
Run Code Online (Sandbox Code Playgroud)