我尝试了以下方法:
$cat args.sh \#! /Applications/ccl/dx86cl64 (format t "~&~S~&" *args*) $./args.sh
无法从./args.sh加载lisp堆映像
我可以直接运行lisp罚款:
$/Applications/ccl/dx86cl64 Welcome to Clozure Common Lisp Version 1.5-r13651 (DarwinX8664)! ?
是否可以使用Clozure CL编写shell脚本来运行lisp代码?我确信我做的事情很傻.
接下来查理查理马丁的回答以及随后的问题. dx86cl64 –eval< code>将启动一个REPL,所以如果你想启动给定的脚本然后退出,只需将它添加到脚本的末尾:(ccl :: quit).在您提供的示例中,这可以解决问题:
#! /bin/bash exec /Applications/ccl/dx86cl64 --eval '(progn (format t "hello script") (ccl::quit))'
一个更好的脚本如下:
#! /bin/bash exec /Applications/ccl/dx86cl64 -b -e '(progn (load "'$1'") (ccl::quit))'
将它放入一个文件,load-ccl-script.sh(或您选择的其他名称).然后以下交互工作:
$echo '(format t "weeee!")' > a.lisp $sh load-ccl-script.sh a.lisp weeee! $_