запустить скрипт на lisp в bash

На самом деле это единственный раздел про unix на этом форуме

Модератор: /dev/random

тхакур
Сообщения: 27
ОС: debian

запустить скрипт на lisp в bash

Сообщение тхакур » 30.04.2019 14:33

Всем удачи....
скажите, пожалуйста, что не правильно?

Код: Выделить всё

#! /bin/bash
/usr/bin/sbcl
(message "Это сообщение появится в эхо-области!")

Код: Выделить всё

th@debian:~$ ls -l skr
-rwxr-xr-x 1 th th 107 апр 30 14:25 skr
th@debian:~$ 

Код: Выделить всё

th@debian:~$ ./skr
This is SBCL 1.3.14.debian, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
Спасибо сказали:

Аватара пользователя
Vascom
Сообщения: 1471
ОС: Fedora 30

Re: запустить скрипт на lisp в bash

Сообщение Vascom » 30.04.2019 17:38

Замен. bash на sbcl и удали строку с sbcl.
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4843
ОС: Gentoo

Re: запустить скрипт на lisp в bash

Сообщение /dev/random » 30.04.2019 17:56

тхакур писал:
30.04.2019 14:33
Всем удачи....
скажите, пожалуйста, что не правильно?
Когда вы вводите эти строки напрямую в терминале, то каждая передаётся той программе, которая в данный момент ожидает ввода. /usr/bin/sbcl передаётся bash и запускает sbcl, который начинает ожидать ввода, и следующая команда передаётся уже ему. В скриптах же так не получится. Скрипт передаётся на запуск bash, и только он один из него читает. Строка /usr/bin/sbcl запускает sbcl, который ждёт ввода с терминала. С терминала, а не из скрипта. Вы можете, как предложил Vascom, сменить строку "#!" в скрипте, чтобы скрипт запускался сразу с помощью sbcl:

Код: Выделить всё

#!/usr/bin/sbcl
(message "Это сообщение появится в эхо-области!")
Или же можете запустить sbcl с передачей ему явно указанного ввода через here-docs:

Код: Выделить всё

#!/bin/bash
/usr/bin/sbcl <<EOF
(message "Это сообщение появится в эхо-области!")
EOF
Спасибо сказали:

тхакур
Сообщения: 27
ОС: debian

Re: запустить скрипт на lisp в bash

Сообщение тхакур » 30.04.2019 18:42

Код: Выделить всё

#!/bin/sbcl
(message "Это сообщение появится в эхо-области!")

Код: Выделить всё

th@debian:~$ ./skr
bash: ./skr: /bin/sbcl: неверный интерпретатор: Нет такого файла или каталога
th@debian:~$ ls /bin
bash           echo         ls             open                      systemd-notify
bunzip2        efibootdump  lsblk          openvt                    systemd-sysusers
busybox        efibootmgr   lsmod          pidof                     systemd-tmpfiles
bzcat          egrep        mkdir          ping                      systemd-tty-ask-password-agent
bzcmp          false        mknod          ping6                     tailf
bzdiff         fgconsole    mktemp         ps                        tar
bzegrep        fgrep        more           pwd                       tempfile
bzexe          findmnt      mount          rbash                     touch
bzfgrep        fusermount   mountpoint     readlink                  true
bzgrep         getfacl      mt             rm                        udevadm
bzip2          grep         mt-gnu         rmdir                     ulockmgr_server
bzip2recover   gunzip       mv             rnano                     umount
bzless         gzexe        nano           run-parts                 uname
bzmore         gzip         netstat        sed                       uncompress
cat            hciconfig    networkctl     setfacl                   unicode_start
chacl          hostname     nisdomainname  setfont                   vdir
chgrp          ip           ntfs-3g        setupcon                  wdctl
chmod          journalctl   ntfs-3g.probe  sh                        which
chown          kbd_mode     ntfscat        sh.distrib                ypdomainname
chvt           kill         ntfscluster    sleep                     zcat
cp             kmod         ntfscmp        ss                        zcmp
cpio           less         ntfsfallocate  stty                      zdiff
dash           lessecho     ntfsfix        su                        zegrep
date           lessfile     ntfsinfo       sync                      zfgrep
dd             lesskey      ntfsls         systemctl                 zforce
df             lesspipe     ntfsmove       systemd                   zgrep
dir            ln           ntfsrecover    systemd-ask-password      zless
dmesg          loadkeys     ntfssecaudit   systemd-escape            zmore
dnsdomainname  login        ntfstruncate   systemd-hwdb              znew
domainname     loginctl     ntfsusermap    systemd-inhibit
dumpkeys       lowntfs-3g   ntfswipe       systemd-machine-id-setup
th@debian:~$ 
sbcl есть в /usr/bin/

Код: Выделить всё

 sane-find-scanner
gcov-6                              savelog
gcov-dump                           sbcl
gcov-dump-6                         sbigtopgm
gcov-tool                           scanimage
gcov-tool-6                         scim
gcr-viewer                          scim-
Добавлено (18:54):

Код: Выделить всё

#!/usr/bin/sbcl
(message "Это сообщение появится в эхо-области!")

Код: Выделить всё

th@debian:~$ chmod ugo+x skr 
th@debian:~$ ./skr
This is SBCL 1.3.14.debian, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* th@debian:~$ 
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15620
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: запустить скрипт на lisp в bash

Сообщение Bizdelnick » 30.04.2019 19:03

Код: Выделить всё

#!/usr/bin/sbcl --script
(message "Это сообщение появится в эхо-области!")
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

тхакур
Сообщения: 27
ОС: debian

Re: запустить скрипт на lisp в bash

Сообщение тхакур » 30.04.2019 21:50

да...огромное спасибо
и снова Вы выручаете

Код: Выделить всё

th@debian:~$ cat skr
#!/usr/bin/sbcl --script
(write-line "Hello, World!")
th@debian:~$ ls -l skr
-rwxr-xr-x 1 th th 54 апр 30 21:30 skr
th@debian:~$ ./skr
Hello, World!
th@debian:~$ 
:yes3: :yes3: :yes3:
Спасибо сказали: