我尝试了以下方法:
$ 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/
接下来查理查理马丁的回答以及随后的问题.这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)