我正在努力找出是否有一种方法来提供输入到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
的文件都会转到那个文件