如何使用文本文件作为输入,在smalltalk的交互输入中提供feed,并将输出重定向到文件



我正在努力找出是否有一种方法来提供输入到gst a.st b.st ... -的交互命令重定向输出。通常,交互缓冲区会有st> ...,当你输入一个命令时,它会通过调用默认/覆盖displayString方法,以交互输出。如何获得输入并使用Linux命令或一个小的smalltalk测试脚本来提供输出。谢谢你。

这是一个精心设计的演示程序。它从标准输入读入字符串直到EOF,对它们进行排序,然后打印出来:

input := stdin nextLine.
c := OrderedCollection new.
[ input ~= nil ] whileTrue: [
c add: input.
input := stdin nextLine.
].
c sort do: [ :each | each printNl ]

可以交互式运行(输入hhh后按Ctrl-D):

$ gst sortprog.st
tttt
aaa
vvvv
hhh
'aaa'
'hhh'
'tttt'
'vvvv'

或者我可以创建一个包含以下内容的文本文件test.in:

tttt
aaa
vvvv
hhh

然后运行:

$ gst sortprog.st < test.in > test.out

然后检查输出文件的内容:

$ cat test.out
'aaa'
'hhh'
'tttt'
'vvvv'

如果您的程序有提示,它们当然会出现在输出文件中。任何转到stdout的文件都会转到那个文件

最新更新