Common Lisp Shebang 脚本提供 "Command Not Found"

Common Lisp Shebang Script Gives "Command Not Found"

我正在尝试 运行 在 MacOS 上使用 SBCL 的 Common Lisp shebang 脚本 (test.lisp)。脚本如下:

#!/usr/local/bin/Cellar/sbcl/1.5.6/bin/sbcl --script
(write-line "test")

我在脚本上 运行 chmod +x 以使其可执行,当我 运行 它时,我得到:

./test.lisp: line 2: write-line: command not found

我确定我的 SBCL 路径是正确的。我最初尝试 /usr/local/bin/sbcl,但那给了我同样的错误。

我该如何解决这个问题?

不要在 shebang 脚本行中使用此类特定路径,尤其是当它们包含版本号时,因为这些二进制文件的 location/version 可能会更改并破坏脚本。

而是使用 /usr/bin/env 来查找可执行文件,在您的情况下是:

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