Проблема с использованием shebang для запуска сценария SBCL Common LISP в качестве исполняемого файла - PullRequest
2 голосов
/ 11 марта 2019

Я пытался изучить Common Lisp с помощью SBCL и столкнулся с проблемами при выполнении моего кода. Все работает нормально, используя 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 правильный)

РЕДАКТИРОВАТЬ: я использую Mac OS.

1 Ответ

0 голосов
/ 22 мая 2019

Я бы проверил путь, указанный для 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 !
...