微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用文本文件作为输入来输入 smalltalk 的交互式输入并将输出重定向到文件

如何解决如何使用文本文件作为输入来输入 smalltalk 的交互式输入并将输出重定向到文件

我正在努力寻找有没有办法提供输入 到 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 的任何内容都将转到该文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。