使用shebang将SBCL Common LISP脚本作为可执行文件运行的问题

时间:2019-03-11 07:58:06

标签: common-lisp sbcl shebang

我一直试图通过SBCL学习Common Lisp,但在执行代码时遇到了问题。使用inp = Input((50,)) out = Dense(units=28, activation="relu")(inp) 一切都可以正常工作(无论是否指定了shebang行),但是我似乎无法直接使用sbcl --script exec.lisp的shebang行执行同一文件。尽管我很可能会误解了某些情况,但根据我的理解manual所做的事情暗示这应该是可能的。我的./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 的路径正确)

编辑:我正在使用Mac OS。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

在MacOS上也有同样的问题,更改为:

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

工作。

答案 2 :(得分:0)

我将检查为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 !