Я новичок в SBCL, и я пытаюсь запустить скрипты Lisp, хранящиеся в текстовых файлах с терминала bash.SBCL: работает от bash и уходит обратно в bash
Это то, что я пишу в начале файла, как ссылки на http://www.sbcl.org/manual/#Running-from-Shell
#!/usr/local/bin/sbcl --script
(write-line "Hello, World!")
Это так, как я запустить его с Баш терминала:
$ ./hello.lisp
Hello, World!
Проблема в том, что сценарий заканчивается после bash после его выполнения. Я хотел бы, чтобы сценарий не возвращался к bash, но для сохранения sbcl interpreter работает (чтобы иметь возможность использовать предопределенные функции для целей тестирования). Есть ли простой способ сделать это?
Спасибо, но каков был бы способ сделать это внутри текстового файла (собственно сценарий)? Замена «-script» на «--eval» в «#!/Usr/local/bin/sbcl -script» не работает. – user1326050
Вам необходимо передать текст в качестве аргумента опции -e, например, обернуть его внутри кавычек или что-то в этом роде. Но похоже, что вы делаете что-то вроде SBCL. Почему бы не поместить весь ваш код lisp в .lisp-файл и просто '(загрузить «myfile.lisp») 'из SBCL? Каков ваш полный вариант использования? – coredump
Я хотел бы определить новую функцию в «myfile.lisp». Позже я хочу использовать эту функцию в ** SBCL **. Если я попробую '(load" myfile.lisp ")' он всегда оценивает как ** T **, и я не могу использовать функцию, определенную в этом файле. Содержимое ** myfile.lisp ** равно: '(defun sumgr (x y z) (> (+ x y) z))'. Ошибка SBCL показывает: ** отладчик, вызываемый в UNBOUND-VARIABLE: переменная SUMGR не связана. ** – user1326050