可以从命令行运行Smalltalk脚本吗?

可以从命令行运行Smalltalk脚本吗?,smalltalk,gnu-smalltalk,Smalltalk,Gnu Smalltalk,我发现了一个(可能已经过时并且不正确)声明不可能从命令行运行Smalltalk脚本。从那以后有什么变化吗?是否可以从命令行运行Smalltalk脚本?我在谷歌上做了很多搜索,但我没有找到关于这个主题的任何信息 有没有办法将Smalltalk脚本(如本脚本)保存为文件,然后从命令行运行该脚本 Transcript show: 'This should be printed to the standard output.' printString; cr. 具有良好的命令行支持和安装它的简单脚本:

我发现了一个(可能已经过时并且不正确)声明不可能从命令行运行Smalltalk脚本。从那以后有什么变化吗?是否可以从命令行运行Smalltalk脚本?我在谷歌上做了很多搜索,但我没有找到关于这个主题的任何信息

有没有办法将Smalltalk脚本(如本脚本)保存为文件,然后从命令行运行该脚本

Transcript show: 'This should be printed to the standard output.' printString; cr.
具有良好的命令行支持和安装它的简单脚本:

curl get.pharo.org | bash
./pharo Pharo.image --help
./pharo Pharo.image eval "1+2"
我们在日常生活中定期使用这些工具

通过子类化,可以轻松安装新的命令行句柄。 您将找到部分文档


针对更复杂的接口,支持复杂参数解析。Pharo附带的默认命令行工具采用了一种相当简单的方法,您必须手动检查和处理参数。

使用gst,这很简单。将此文件放入hi.st:

Transcript show: 'Hi!'
然后运行
gst hi.st
,就完成了

要从命令行传递参数,请执行以下操作:

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

然后运行
gst hi.st-a World

gst-没有太大的变化,那篇博文现在比当时更错误。现在我们在Pharo中有了一个真正的无头虚拟机和映像,我们可以通过只使用所需的类引导它们来制作更小的映像。

您使用的是哪种smalltalk?Pharo在@msandiford有Coral,我使用的是GST Smalltalk,但我也可以使用Pharo,这取决于GNU Smalltalk和Pharo之间是否存在语法差异。(事实上,我甚至不确定每个Smalltalk实现之间是否存在显著的语法差异)。@msandiford同样,我仍然不理解生成Coral shell脚本的说明。根据,我应该“在生成脚本之前将这些文件放在正确的位置”,但指南没有解释将文件放在哪里。更多信息可以在gst文档中找到:您引用的文档显示使用
stdin
eval
,例如,
echo“1+2”|$PHARO_VM my.image eval
。对于Pharo6.1,它不能在ubuntu 17下工作(命令挂起)。它正在使用表达式作为传入的参数。我试图找到一种方法来评估文件中的任意脚本,例如,
cat myScript |……
,而不在图像中定义命令处理程序(子类化等)。好的,在重命名脚本
myScript.st
后,我将使用
st
命令。也就是说,
/pharo-pharo.image st myScript.st
正在使用任意pharo命令。美好的
gst - <<<"'hello' printNl"