Shammer's Philosophy

My private adversaria

SBCLのシェル化

pythonなどをスクリプトで実行する際には、

$ python some-python-script.py
Hello
$

というようになるものは、some-python-script.pyの冒頭に

#!/usr/bin/env python

とか付けてやることで、

$ ./some-python-script.py
Hello
$

と、スクリプトそれ自体を直接呼出すことができる。Lispでもこれをできないかと思っていた。CLISPでできるのは知っていたが、ClozureCLではできない。そして、SBCLでもできるようだ。--scriptというオプションを使用すればいいらしい。

#!/usr/local/bin/sbcl --script
(format t "Hello!~%")
(quit)

これで、このファイルに実行権限を与えると直接実行できる。これができれば、ApacheCGIでも使えるはず。こういうのをshebang(シェバング?)というようだ。