在sbcl中检索脚本名称

时间:2017-08-30 12:40:33

标签: sbcl

假设我有一个名为'1.sb'的文件,其中包含以下内容:

#!/usr/local/bin/sbcl --script

(prin1 sb-ext:*posix-argv*) (terpri)

如果我将其作为'1.sb a b c'调用,我会得到此输出:

("/usr/local/bin/sbcl" "a" "b" "c")

如何获取脚本文件本身的名称('1.sb')?

1 个答案:

答案 0 :(得分:0)

事实证明,对于sbcl来说,正确的(至少据我所知)轻量级解决方案就像在这个脚本中一样:

#!/usr/local/bin/sbcl --script

(prin1 (apply #'concatenate 'string
         (remove-if #'null
           (list (pathname-name *load-truename*)
                 (when (pathname-type *load-truename*)
                   ".")
                 (pathname-type *load-truename*))))) (terpri)

感谢the Freebsd forums的用户tobik指示我* load-truename *。