如何使用文本文件作为输入来提供 smalltalk 的交互式输入并将输出重定向到文件
How to use text file as input to feed in the interactive input of smalltalk and redirect output to a file
我正在努力寻找是否有办法提供输入
到 gst a.st b.st ... -
的交互命令
并重定向输出。通常,交互式缓冲区将
有 st> ...
并且当您键入命令时,它将通过调用输出一些内容
default/override 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
的任何内容都会转到该文件。
我正在努力寻找是否有办法提供输入
到 gst a.st b.st ... -
的交互命令
并重定向输出。通常,交互式缓冲区将
有 st> ...
并且当您键入命令时,它将通过调用输出一些内容
default/override 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
的任何内容都会转到该文件。