Можно ли запускать скрипты Smalltalk из командной строки?

Я нашел (возможно устаревшее и неправильное) сообщение блога с 2004 года, в котором утверждалось, что запуск сценариев Smalltalk из командной строки невозможно. С тех пор что-то изменилось, и можно ли запустить скрипты Smalltalk из командной строки? Я много искал в Google, и я вообще не нашел информации об этой теме.

Есть ли способ сохранить Smalltalk script (например, этот) в качестве файла, а затем запустить script из командной строки?

Transcript show: 'This should be printed to the standard output.' printString; cr.

Ответ 1

Pharo имеет достойную поддержку командной строки и простой zeroconf script, чтобы установить его:

curl get.pharo.org | bash
./pharo Pharo.image --help
./pharo Pharo.image eval "1+2"

Мы регулярно используем эти инструменты на наших серверах ci.

Новые дескрипторы командной строки могут быть легко установлены путем подкласса. Здесь вы найдете частичную документацию .

Coral нацелен на более сложные интерфейсы и поддерживает комплексный синтаксический анализ параметров. Инструменты командной строки по умолчанию, поставляемые с Pharo, следуют довольно упрощенному подходу, и вы должны вручную проверять и обрабатывать параметры.

Ответ 2

С gst это просто. Поместите это в hi.st:

Transcript show: 'Hi!'

Затем запустите gst hi.st, и все готово.

Чтобы передать аргументы из командной строки, выполните следующие действия:

Transcript show: 'Hi ' , Smalltalk arguments first , '!'

Затем запустите gst hi.st -a World

Ответ 3

gst - <<<"'hello' printNl"

Это универсальный шаблон для поставки script в командной строке. Он называется текущей строкой. Тире задается имя файла для стандартного ввода. И Triple меньше, чем делает следующую строку в файле места на стандартном. Вы все еще получаете расширение строки командной строки.

Вы можете получить намного больше здесь документы, которые позволяют вводить многострочные команды в script или справа в командной строке с помощью вдвое меньше.