Можно ли запускать скрипты 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 или справа в командной строке с помощью вдвое меньше.