发行Shebang将SBCL Common LISP脚本作为可执行文件运行



我一直在尝试使用SBCL学习常见的LISP,并且遇到了执行代码的问题。使用sbcl --script exec.lisp一切正常(无论我是否指定了Shebang行),但是我似乎无法直接使用Shebang线直接执行相同的文件,直接像./exec.lisp一样。虽然我很可能会误解了手册从我的理解中做的事情,这意味着这应该是可能的。我的exec.lisp脚本看起来与示例中的脚本相同(并且已获得可执行的特权chmod a+x exec.lisp

#!/usr/local/bin/sbcl --script
(write-line "Hello, World!")

,但我收到的所需输出不是:

$ ./exec.lisp 
./exec.lisp: line 2: write-line: command not found

我确保了sbcl的路径是正确的)

编辑:我正在使用MacOS。

在macOS上也有相同的问题,更改为:

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

工作。

在此处使用Arch Linux上使用GNU核心实用程序:

#!/usr/bin/env -S sbcl --script
(write-line "😻")

我会检查为sbcl提供的路径(它与which sbcl的输出匹配吗?)

我尝试了以下内容(运行Macos Mojave 10.14.4,SBCL版本1.4.16,使用nix而不是brew获得,但我怀疑这有所不同):

> $ which sbcl
/Users/abrahma/.nix-profile/bin/sbcl
> $ bat test.lisp
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: test.lisp
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ #!/Users/abrahma/.nix-profile/bin/sbcl --script
   2   │ (write-line "Hello world from Lisp !")
   3   │
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> $ l
.rwxr-xr-x 88 abrahma 21 May 15:54 test.lisp
> $ ./test.lisp
Hello world from Lisp !

相关内容

最新更新